{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "960ceacb-3c3f-484c-95b9-172bd009b1a4",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "This is a generic code for drawing a state's Home Districts for neutral map estimation\n",
      "In this code, we use the term 'tract' generically to refer the base building block, usually vtd's\n",
      "  special for this version, we only draw HDs confined to a single Ohio county\n"
     ]
    }
   ],
   "source": [
    "#  from vanillaHD-OH99 1/5/25.\n",
    "print(\"This is a generic code for drawing a state's Home Districts for neutral map estimation\") \n",
    "print(\"In this code, we use the term 'tract' generically to refer the base building block, usually vtd's\")\n",
    "print(\"  special for this version, we only draw HDs confined to a single Ohio county\")\n",
    "import shapely\n",
    "from shapely.geometry import Point, LineString, Polygon\n",
    "from shapely.ops import nearest_points, transform\n",
    "from shapely.affinity import translate, scale\n",
    "import geopandas as gpd\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "from numpy import random\n",
    "from scipy.stats import norm\n",
    "from scipy.optimize import minimize, minimize_scalar\n",
    "import math\n",
    "import time\n",
    "import ast\n",
    "# from HDmethods import *   #I want to implement this, but my HDmethods require shapely functions\n",
    "# see https://stackoverflow.com/questions/66877728/proper-way-to-use-import-when-calling-external-function for a future workaround\n",
    "\n",
    "dummyPoly = Polygon([(0,0),(0,1),(1,1)])\n",
    "#handy function for plotting Polygon or multiPolygon tracts and precincts\n",
    "def plotPoly(inputPoly,LW=1):\n",
    "    dummyPoly = Polygon([(0,0),(0,1),(1,1)])\n",
    "    if inputPoly.geom_type == dummyPoly.geom_type:\n",
    "        x,y = inputPoly.exterior.xy\n",
    "        plt.plot(x,y,lw=LW)\n",
    "    else:\n",
    "        for geom in inputPoly.geoms:\n",
    "            if geom.area > 0:  #to avoid error with LineString geom parts\n",
    "                x,y = geom.exterior.xy\n",
    "                plt.plot(x,y,lw=LW)  \n",
    "def plotCenter(t,geom,FONTSIZE=10):\n",
    "    plt.text(geom.centroid.x,geom.centroid.y,t,ha='center',fontsize=FONTSIZE)\n",
    "    \n",
    "def r3(number):\n",
    "    result = round(number,3)\n",
    "    return result\n",
    "\n",
    "def r5(number):\n",
    "    result = round(number,5)\n",
    "    return result\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "2ab4a3d5-f4e7-4aec-b81c-0e786cd35b57",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "def getWeightedAvgAndSD(LIST, WEIGHTS):  #from IN\n",
    "    nWeights = len(WEIGHTS)\n",
    "    normWeights = [WEIGHTS[i] / np.sum(WEIGHTS) for i in range(nWeights) ]\n",
    "    AVG = 0.\n",
    "    for i, value in enumerate(LIST):\n",
    "        AVG += normWeights[i] * value\n",
    "    sumVar = 0.\n",
    "    for i, value in enumerate(LIST):\n",
    "        sumVar += normWeights[i] * (value - AVG)**2\n",
    "    SD = sumVar ** 0.5     #don't need to normalize again since weights were normalized\n",
    "    return AVG, SD\n",
    "\n",
    "def squish(shapeList, cutLINE, farLINE, newFarLINE):\n",
    "    \"\"\"\n",
    "    This method compresses a list of shapes lying between the cutLINE and the farLINE)\n",
    "    such that the Polygons now lie between the cutLINE and the newFarLINE, which is closer to the cutLINE\n",
    "    Used to compress state outcroppings into a more compact state representation.\n",
    "     (I tried doing this point by point (see #'s), but this overdistorted geometries.)\n",
    "      (#This was a manual alternative to shapely.affinity.scale and .translate operations)\n",
    "       So instead, we run this AFTER established untransformed map topology, and \n",
    "        we simply scale and translate each unit.  This loses true connectivity.\n",
    "        Scaling is all lengths scale by compression of distance\n",
    "    The cut, far, and newFar LineString segments are preferably parallel\n",
    "    The method returns the modified shapes of all pollys\n",
    "    \"\"\"\n",
    "    if cutLINE.intersects(farLINE) or cutLINE.intersects(newFarLINE):\n",
    "        print(\"cutLine,farLine, newFarLine were\",cutLINE, farLINE, newFarLINE)\n",
    "        raise Exception(\"ERROR: the proposed cutLine intersects the current or proposed far line\")\n",
    "    newPollys = list()\n",
    "    for polly in shapeList:\n",
    "        pollyCP = polly.centroid\n",
    "        cutPt =     nearest_points(cutLINE,   pollyCP)[0]\n",
    "        farPt =     nearest_points(farLINE,   pollyCP)[0]\n",
    "        newFarPt =  nearest_points(newFarLINE,pollyCP)[0]\n",
    "        curr_cutX, curr_cutY =            pollyCP.x - cutPt.x, pollyCP.y -  cutPt.y\n",
    "        currFar_CutX , currFar_CutY  =    farPt.x - cutPt.x, farPt.y   -  cutPt.y\n",
    "        new_currFarX, new_currFarY =      newFarPt.x - farPt.x, newFarPt.y - farPt.y\n",
    "        newFar_CutX,  newFar_CutY =       newFarPt.x - cutPt.x, newFarPt.y   -  cutPt.y\n",
    "        distanceRatio = newFarPt.distance(cutPt)/farPt.distance(cutPt) #scale area ^length^2\n",
    "        XOFF,YOFF = 0., 0.\n",
    "        XFACT, YFACT = 1., 1.  #default = no stretch\n",
    "        # basic equation: (new-cut)/(curr-cut) = (newFar-cut)/(currFar - cut)\n",
    "        #  or: (new-curr)  = (curr-cut)*(newFar-currFar)/(currFar - cut)   # -1 to both sides\n",
    "        if currFar_CutX != 0:\n",
    "            XOFF =  curr_cutX * new_currFarX / currFar_CutX\n",
    "            XFACT =              newFar_CutX / currFar_CutX\n",
    "        if currFar_CutY != 0:\n",
    "            YOFF =  curr_cutY * new_currFarY / currFar_CutY\n",
    "            YFACT =              newFar_CutY / currFar_CutY\n",
    "        newPolly = translate(polly,xoff=XOFF,yoff=YOFF)\n",
    "        newPolly = scale(newPolly, xfact=XFACT, yfact=YFACT, origin='centroid')\n",
    "        newPollys.append( newPolly )       \n",
    "    return newPollys\n",
    "\n",
    "def getHDcp(TRACTCP,TRACTPOP, TRACTLIST, SPLITTRACTNO = -777,SPLITTRACTUSE = 1.):  #population centerpoint of a Home District or county (cluster)\n",
    "    cpx, cpy, sumPop = 0.,0., 0.\n",
    "    for tt in TRACTLIST:\n",
    "        USE = 1.\n",
    "        if tt ==    SPLITTRACTNO:\n",
    "            USE =   SPLITTRACTUSE\n",
    "        sumPop += USE*TRACTPOP[tt]\n",
    "        cpx +=    USE*TRACTPOP[tt] * TRACTCP[tt].x\n",
    "        cpy +=    USE*TRACTPOP[tt] * TRACTCP[tt].y\n",
    "    HDCP_ = Point(cpx/sumPop, cpy/sumPop)\n",
    "    return HDCP_\n",
    "\n",
    "#  The below four methods are TO SNAP to HD SHAPES without any solving / iteration\n",
    "def buildWedge(CP,STARTANGLE, ENDANGLE, RR,XSCALE=1.0):\n",
    "    \"\"\"\n",
    "    This method creates triangular wedges from a centerpoint, wedge start and end angles, and wedge radius.\n",
    "    The optional xScale parameter is the ratio of longitude to latitude lengths scales (<<1 for far from equator)\n",
    "    It passes back a SINGLE wedge polygon\n",
    "    \"\"\"\n",
    "    A0 = STARTANGLE\n",
    "    A1 = ENDANGLE\n",
    "    PT1 = Point(CP.x + RR/XSCALE*math.cos(A0),  CP.y + RR*math.sin(A0) )\n",
    "    PT2 = Point(CP.x + RR/XSCALE*math.cos(A1),  CP.y + RR*math.sin(A1) )\n",
    "    WEDGEPOLY = Polygon( [CP,PT1, PT2 ])\n",
    "    return WEDGEPOLY\n",
    "\n",
    "def buildPoly(CP, RADII, ANGLES, XSCALE = 1.0):  #reconstructs a 4-tri polygon from four HD wedges emanating from the centerpoint\n",
    "    Pt = [Point(0,0)]*12                      #xScale has same meaning as in buildWedge\n",
    "    for nW in range(4): \n",
    "        ccwAngle = ANGLES[nW]  #these two are the angles at start and end of nth wedge\n",
    "        cwAngle =  ANGLES[ int((nW+1)%4) ]  \n",
    "        Pt[nW*2] =   Point(CP.x + RADII[nW]/XSCALE*math.cos(ccwAngle), CP.y + RADII[nW]*math.sin(ccwAngle) )\n",
    "        Pt[nW*2+1] = Point(CP.x + RADII[nW]/XSCALE*math.cos( cwAngle), CP.y + RADII[nW]*math.sin( cwAngle) )        \n",
    "    POLLY = Polygon([Pt[0],Pt[1],Pt[2],Pt[3],Pt[4],Pt[5],Pt[6],Pt[7] ])\n",
    "    return POLLY\n",
    "\n",
    "def buildArcPoly(CP, RADII, ANGLES, XSCALE = 1.0):  #reconstructs a fuller polygon from four HD wedges emanating from the centerpoint\n",
    "    twoPi = 2. * 3.1415926   #xScale has same meaning as in buildWedge\n",
    "    POINTS = list()                   \n",
    "    for nW in range(4): \n",
    "        ccwAngle = ANGLES[nW] % twoPi                 #these two are the angles at start and end of nth wedge\n",
    "        cwAngle =  ANGLES[ int((nW+1)%4) ] % twoPi \n",
    "        midAngle = [0.75*ccwAngle + 0.25*cwAngle , 0.25*ccwAngle + 0.75*cwAngle ]  #avoid s sampling cone center for wide angles\n",
    "        if abs (ccwAngle - cwAngle) > 3.1415926 :  #angles straddle angle=0\n",
    "            midAngle = [0.75*(ccwAngle - twoPi) + 0.25*cwAngle , 0.25*(ccwAngle -twoPi) + 0.75*cwAngle ]\n",
    "        angList = [ccwAngle] + midAngle + [cwAngle]\n",
    "        for ang in angList:\n",
    "            POINTS.append(Point(CP.x + RADII[nW]/XSCALE*math.cos(ang), CP.y + RADII[nW]*math.sin(ang) ) )\n",
    "                          \n",
    "    POLLY = Polygon(POINTS)\n",
    "    return POLLY\n",
    "\n",
    "def getPolyPop(POLLY, TRACTCP, TRACTPOP, CANDIDATELIST ):  #simple capture of pop points contained by a polygon\n",
    "    WPOP, WLIST = 0., list()\n",
    "    for tt in CANDIDATELIST:\n",
    "        if POLLY.contains(TRACTCP[tt]):\n",
    "            WPOP += TRACTPOP[tt]\n",
    "            WLIST.append(tt)\n",
    "    return WPOP, WLIST\n",
    "\n",
    "def getNonCPP(POLLY, HC, TRACTCP, TRACTPOP, COUNTYGEOM, COUNTYPOP, COUNTYTRACTLIST, NEIGHBORCOUNTYLIST) : #nonCounty wedgePop\n",
    "    \"\"\"\n",
    "    This method computes the total pop captured by a POLLY polygon for counties contiguous with the Home County (no hop-overs)\n",
    "    , EXCLUDING the home county for the centerpoint of the wedge.  This should be more efficient than probing every unit in the map\n",
    "    After each county is checked, it goes into the checked list so we don't re-check, then we recursively probe county neighbors\n",
    "    \"\"\"\n",
    "    WPOP, WLIST = 0., list()\n",
    "    checkedClist = [HC]   #dynamic list of counties we've already checked.  We probed the home county in getPolyPop\n",
    "    intersectedClist = [HC]\n",
    "    latestClist = [HC]\n",
    "    while len(latestClist) > 0:\n",
    "        newClist = list()    #we loop until we don't find any more neighbors with intersection\n",
    "        for c in latestClist:\n",
    "            for cc in NEIGHBORCOUNTYLIST[c]:\n",
    "                if cc not in checkedClist:\n",
    "                    checkedClist.append(cc)\n",
    "                    if POLLY.intersects(COUNTYGEOM[cc]):\n",
    "                        intersectedClist.append(cc)\n",
    "                        newClist.append(cc)\n",
    "                        if POLLY.contains(COUNTYGEOM[cc]):\n",
    "                            WPOP += COUNTYPOP[cc]\n",
    "                            WLIST += COUNTYTRACTLIST[cc]\n",
    "                        else:\n",
    "                            for tt in COUNTYTRACTLIST[cc]:\n",
    "                                if POLLY.contains(TRACTCP[tt]):\n",
    "                                    WPOP += TRACTPOP[tt]\n",
    "                                    WLIST.append(tt)\n",
    "        #below is temp debug\n",
    "        #print(len(intersectedClist),WPOP, len(WLIST),\"counties probed, pop, len(tractList)\")\n",
    "        latestClist = newClist.copy()\n",
    "    return WPOP, WLIST\n",
    "\n",
    "def getNonHCunits(POLLY, HC, UNITLIST, UNITCP, UNITPOP, ALLFUSEDCOUNTIES, AREAFRAC, COUNTYGEOM, \n",
    "                  NEIGHBORCOUNTYLIST, COUNTYUNITLIST):\n",
    "    \"\"\"\n",
    "    This method computes the total pop captured by a POLLY polygon for counties contiguous with the Home County (no hop-overs)\n",
    "    , EXCLUDING the home county.  This should be more efficient than probing every unit in the map\n",
    "    After each county is checked, it goes into the checked list so we don't re-check, then we recursively probe county neighbors\n",
    "    \"unit counties\" are added as whole units if a sufficient area fraction is captured.  For non-unitCs, we probe each component vtd / tract\n",
    "    \"\"\"\n",
    "    UPOP, ULIST = 0., list()\n",
    "    checkedClist = [HC]   #dynamic list of counties we've already checked.  We probed the home county before we called this method\n",
    "    intersectedClist = [HC]\n",
    "    latestClist = [HC]\n",
    "    while len(latestClist) > 0:\n",
    "        newClist = list()    #we loop until we don't find any more neighbors with intersection\n",
    "        #1/9/24 - DO WE NEED TO MODIFY THE ORDER BELOW TO AVOID CREATING HOLES AND ENCLAVES ??  #\n",
    "        \n",
    "        for c in latestClist:\n",
    "            for cc in list( set(NEIGHBORCOUNTYLIST[c]).difference(set(ALLFUSEDCOUNTIES)) ):\n",
    "                if cc not in checkedClist:\n",
    "                    checkedClist.append(cc)\n",
    "                    if POLLY.intersects(COUNTYGEOM[cc]):\n",
    "                        if cc+0.5 in UNITLIST:\n",
    "                            if POLLY.intersection(COUNTYGEOM[cc]).area >=  AREAFRAC[cc] * COUNTYGEOM[cc].area :\n",
    "                                intersectedClist.append(cc)   #for unit counties, intersections count only if they capture sufficient area\n",
    "                                newClist.append(cc)\n",
    "                                UPOP += UNITPOP[UNITLIST.index(cc+0.5)]\n",
    "                                ULIST.append( UNITLIST.index(cc+0.5) )\n",
    "                        else:                           \n",
    "                            intersectedClist.append(cc)\n",
    "                            newClist.append(cc)\n",
    "                            if POLLY.contains(COUNTYGEOM[cc]):\n",
    "                                unitsToAdd = COUNTYUNITLIST[cc]\n",
    "                                UPOP += np.sum(  [ UNITPOP[uu] for uu in unitsToAdd ]  )\n",
    "                                ULIST += unitsToAdd\n",
    "                            else:\n",
    "                                for uu in COUNTYUNITLIST[cc]:\n",
    "                                    if POLLY.contains(UNITCP[uu]):\n",
    "                                        UPOP += UNITPOP[uu]\n",
    "                                        ULIST.append(uu)\n",
    "        latestClist = newClist.copy()\n",
    "        \n",
    "    return UPOP, ULIST\n",
    "\n",
    "def clusterSwell(CP_, CCBgeom, CCBpop, allUnits, unitCP, unitPop, unitNbrs, borderUnits, TGTPOP):\n",
    "    \"\"\"\n",
    "    This method grows a Home District by \"swelling\" from a corner county cluster.  First, we add the full cluster,\n",
    "     then we add closest neighbor units to the home district centerpoint CP_ until we reach the TGTPOP\n",
    "     new for MN 4/7/24 - don't enforce contiguity here -- too slow -- fix in cleanup stage instead\n",
    "     \"\"\"\n",
    "    hd_CCBdist = [CP_.distance(geo) for geo in CCBgeom]\n",
    "    CCBno = hd_CCBdist.index(np.min(hd_CCBdist))  #ID's the closest cluster to this HD center.  Should contain the HD, but rarely will not\n",
    "    unitNo = allUnits.index(CCBno+0.25)\n",
    "    newList, prevList, addedList, addedPop = [unitNo], [unitNo], [unitNo], unitPop[unitNo]  #seed with the cluster pop and unit\n",
    "    while addedPop < 0.99 * TGTPOP and len(newList) > 0:\n",
    "        tryList = getAdjoiners(addedList,unitNbrs)\n",
    "        tryDist = [ CP_.distance(unitCP[UU]) for UU in tryList ]\n",
    "        idx = np.argsort(tryDist)\n",
    "        idxNo, newList = 0, list()\n",
    "        haveNotAdded = True\n",
    "        while idxNo < len(tryList) and haveNotAdded:\n",
    "            UU = tryList[idx[idxNo]]\n",
    "            if unitPop[UU] + addedPop < 1.01 * TGTPOP :  #and wontEnclave(UU, addedList, unitNbrs, borderUnits) :  #we'll post-fix contig'y\n",
    "                newList.append(UU)\n",
    "                addedList.append(UU)\n",
    "                addedPop += unitPop[UU]\n",
    "                haveNotAdded = False\n",
    "            idxNo +=1\n",
    "        prevList = newList.copy()\n",
    "        \n",
    "    return addedPop, addedList\n",
    "            \n",
    "def getFakeHC(HDPOLLY, HC, CCBlist, countyGeom, MAP) :\n",
    "    \"\"\"\n",
    "    This method is for setting a fake home county for counties in corner clusters, so that county neighbors can be found budding from the \"home county\"\n",
    "    We pick the county in the cluster closest to the map center and intersecting the HDpoly.  This will be an active county on the cluster boundary   \n",
    "    \"\"\"\n",
    "    MAPcenter = MAP.centroid\n",
    "    for L in CCBlist:\n",
    "        if HC in L:\n",
    "            distList, cList = list(), list()\n",
    "            for C in L:\n",
    "                if HDPOLLY.intersects(countyGeom[C]):\n",
    "                    distList.append(countyGeom[C].distance(MAPcenter))\n",
    "                    cList.append(C)\n",
    "    fakeHC = cList[distList.index(np.min(distList)) ]\n",
    "    return fakeHC\n",
    "\n",
    "def getLongDist(CP1, CP2, xScale = 1.0): #distance between two points with EW distance scaled down by latitude\n",
    "    #LAT = MAP.centroid.y\n",
    "    #xScale = (1. - 1.089* abs(LAT/90)**1.9)\n",
    "    dist = ( xScale*xScale * (CP1.x - CP2.x)*(CP1.x - CP2.x)  +  (CP1.y - CP2.y)*(CP1.y - CP2.y) ) **0.5 \n",
    "    return dist\n",
    "\n",
    "# THESE ARE THE METHODS USED IN SOLVING HD SHAPES\n",
    "def buildWedge(CP,STARTANGLE, ENDANGLE, RR,XSCALE=1.0):\n",
    "    \"\"\"\n",
    "    This method creates triangular wedges from a centerpoint, wedge start and end angles, and wedge radius.\n",
    "    It passes back a SINGLE wedge polygon\n",
    "    \"\"\"\n",
    "    A0 = STARTANGLE\n",
    "    A1 = ENDANGLE\n",
    "    PT1 = Point(CP.x + RR/XSCALE*math.cos(A0),  CP.y + RR*math.sin(A0) )\n",
    "    PT2 = Point(CP.x + RR/XSCALE*math.cos(A1),  CP.y + RR*math.sin(A1) )\n",
    "    WEDGEPOLY = Polygon( [CP,PT1, PT2 ])\n",
    "    return WEDGEPOLY\n",
    "\n",
    "def getCountyWP(T, WEDGEPOLY, TRACTCP, TRACTPOP, CANDIDATELIST ):  #simple capture of pop points in a wedge excluding a point\n",
    "        WPOP, WLIST = 0., list()\n",
    "        for tt in CANDIDATELIST:\n",
    "            if tt != T and WEDGEPOLY.contains(TRACTCP[tt]):\n",
    "                WPOP += TRACTPOP[tt]\n",
    "                WLIST.append(tt)\n",
    "        return WPOP, WLIST\n",
    "\n",
    "def getNonCWP(WEDGEPOLY, HC, TRACTCP, TRACTPOP, COUNTYGEOM, COUNTYPOP, COUNTYTRACTLIST, NEIGHBORCOUNTYLIST) : #nonCounty wedgePop\n",
    "    \"\"\"\n",
    "    This method computes the total pop captured by an infinite polygonal wedge for counties contiguous with the Home County (no hop-overs)\n",
    "    , EXCLUDING the home county for the centerpoint of the wedge.  This should be more efficient than going tract-by-tract\n",
    "    After each county is checked, it goes into the checked list so we don't re-check.  Next round = nonchecked neighbors of current round\n",
    "    \"\"\"\n",
    "    WPOP, WLIST = 0., list()\n",
    "    checkedClist = [HC]\n",
    "    intersectedClist = [HC]\n",
    "    latestClist = [HC]\n",
    "    while len(latestClist) > 0:\n",
    "        newClist = list()    #we loop until we don't find any more neighbors with intersection\n",
    "        for c in latestClist:\n",
    "            for cc in NEIGHBORCOUNTYLIST[c]:\n",
    "                if cc not in checkedClist:\n",
    "                    checkedClist.append(cc)\n",
    "                    if WEDGEPOLY.intersects(COUNTYGEOM[cc]):\n",
    "                        intersectedClist.append(cc)\n",
    "                        newClist.append(cc)\n",
    "                        if WEDGEPOLY.contains(COUNTYGEOM[cc]):\n",
    "                            WPOP += COUNTYPOP[cc]\n",
    "                            WLIST += COUNTYTRACTLIST[cc]\n",
    "                        else:\n",
    "                            for tt in COUNTYTRACTLIST[cc]:\n",
    "                                if WEDGEPOLY.contains(TRACTCP[tt]):\n",
    "                                    WPOP += TRACTPOP[tt]\n",
    "                                    WLIST.append(tt)\n",
    "        #below is temp debug\n",
    "        #print(len(intersectedClist),WPOP, len(WLIST),\"counties probed, pop, len(tractList)\")\n",
    "        latestClist = newClist.copy()\n",
    "    return WPOP, WLIST\n",
    "\n",
    "def isIncludedA(STARTa, ENDa, TESTa): #determines if a test angle is between a start and end angle (True)\n",
    "    \"\"\"\n",
    "    The start angle must be less than the end angle when placed on the [0, 2 pi] interval  (ccw convention)\n",
    "    \"\"\"\n",
    "    pi = 3.141592653\n",
    "    STARTa, ENDa, TESTa = STARTa % (2.*pi), ENDa % (2.*pi), TESTa % (2.*pi)  #place on the 2pi interval\n",
    "    isIncludedA = False\n",
    "    if STARTa  > ENDa :  #included angle straddles east\n",
    "        if   TESTa  >= STARTa or TESTa < ENDa :  #near-east between the two\n",
    "            isIncludedA = True\n",
    "    else:\n",
    "        if TESTa >= STARTa and TESTa < ENDa :  #normal case\n",
    "            isIncludedA = True\n",
    "    return isIncludedA\n",
    "\n",
    "def getNonCWP_c(STARTANGL, ENDANGL, HC, TRACTCP,TRACTPOP,COUNTYGEOM,COUNTYPOP,COUNTYTRACTLIST,\n",
    "                                    NEIGHBORCOUNTYLIST, UUDIST, UUANGLE, WEDGEPOLY) :\n",
    "    \"\"\"\n",
    "    This method computes the total pop captured by a polygonal wedge for counties contiguous with the Home County (no hop-overs),\n",
    "    EXCLUDING the home county for the centerpoint of the wedge.  This should be more efficient than going tract-by-tract\n",
    "    After each county is checked, it goes into the checked list so we don't re-check.  Next round = nonchecked neighbors of current round\n",
    "    Unlike its getNonCWP vanilla parent, this one uses angles rather than infinite wedges for units (still wedges for counties)\n",
    "    \"\"\"\n",
    "    WPOP, WLIST = 0., list()\n",
    "    checkedClist = [HC]\n",
    "    intersectedClist = [HC]\n",
    "    latestClist = [HC]\n",
    "    while len(latestClist) > 0:\n",
    "        newClist = list()    #we loop until we don't find any more neighbors with intersection\n",
    "        for c in latestClist:\n",
    "            for cc in NEIGHBORCOUNTYLIST[c]:\n",
    "                if cc not in checkedClist:\n",
    "                    checkedClist.append(cc)\n",
    "                    if WEDGEPOLY.intersects(COUNTYGEOM[cc]):\n",
    "                        intersectedClist.append(cc)\n",
    "                        newClist.append(cc)\n",
    "                        if WEDGEPOLY.contains(COUNTYGEOM[cc]):\n",
    "                            WPOP += COUNTYPOP[cc]\n",
    "                            WLIST += COUNTYTRACTLIST[cc]\n",
    "                        else:\n",
    "                            for tt in COUNTYTRACTLIST[cc]:\n",
    "                                if isIncludedA(STARTANGL, ENDANGL, UUANGLE[tt]): #WEDGEPOLY.contains(TRACTCP[tt]):\n",
    "                                    WPOP += TRACTPOP[tt]\n",
    "                                    WLIST.append(tt)\n",
    "        #below is temp debug\n",
    "        #print(len(intersectedClist),WPOP, len(WLIST),\"counties probed, pop, len(tractList)\")\n",
    "        latestClist = newClist.copy()\n",
    "    return WPOP, WLIST\n",
    "\n",
    "def getExitAngle(CP,WEDGEPOLY, MAP, A0, A1):\n",
    "    \"\"\"\n",
    "    This code determines the orientation angle from a CenterPoint to the intersection of a wedge with an exterior boundary\n",
    "    If an intersection is not found, we just take the average angle of the wedge start/stop angles A0, A1 as this orientation angle\n",
    "    MAP must be a single polygon for this to work in the revised code (tho could run thru all polygons in MAP if a multipolygon)\n",
    "    \"\"\"\n",
    "    EXITANGLE = 0.5* (A0 + A1) #this will be the angle from the x-axis to the exit beeline\n",
    "    if WEDGEPOLY.intersects(MAP.exterior):\n",
    "        edgeLine = WEDGEPOLY.intersection(MAP.exterior) #true state boundary line where wedge crossed it\n",
    "        closePoint = nearest_points(edgeLine,CP)[0]\n",
    "        dx = closePoint.x - CP.x       #this and below lines were indented in original code***\n",
    "        dy = closePoint.y - CP.y\n",
    "        EXITANGLE =  pi/2. * np.sign(dy)  #default in case dx=0\n",
    "        if (dx != 0. ):\n",
    "            EXITANGLE = math.atan(dy/dx) + random.uniform(-0.01,0.01) #add wiggle to avoid exact NESW orientation in gridded states\n",
    "            if dx < 0. :  #use complementary atan solution; boundary is west of tract centroid\n",
    "                EXITANGLE = pi + EXITANGLE\n",
    "    return EXITANGLE # this reorients 0th wedge to face boundary's closest point\n",
    "\n",
    "def getNewAngles(mWP, tWP, ADP, LEVEL_L, MINADJRATIO, MAXANGLE, MAXANGLERATIO, nUNFILLEDWEDGES): \n",
    "    \"\"\"\n",
    "    This method classifies Home Districts based on how their post-reoriented equi-angle max wedge pops stack up vs targets,\n",
    "     then changes wedge angles in some situations to pick up more population along the boundary\n",
    "    If there is one wedge that will fall short of a quarter district pop, then we adjust angles if it is sufficiently short    \n",
    "    (Using \"HD2\" code, the opposite wedge's pop will be constrained as well.)\n",
    "    If there are two opposite-facing constrained wedges, we do not adjust angles\n",
    "    If there are two adjacent constrained wedges, we classify as a corner (no angle change) if the adjacent wedge is sufficiently constrained,\n",
    "      otherwise we treat as a single constrained wedge\n",
    "    If there are three constrained wedges, the angles are unchanged; we use the 4th wedge to pick up all pop\n",
    "    If all four wedges are constrained, there is an error and we raise a flag.\n",
    "    mWP is the quadlist of maxWedgePops we would get by extending each wedge to the MAP boundary\n",
    "    tWP is the quadlist of targetWedgePops\n",
    "    LEVEL_L is the non-dimensional distance to the boundary at which we no longer adjust wedge angles to drive more near-boundary pop\n",
    "    MAXANGLERATIO is the max ratio of the wide angle (facing the boundary) to the normal angle (e.g. 90deg for four wedges) ...\n",
    "    but this is truncated near-boundary to MAXANGLE (e.g. 1.8 pi/2 instead of increasing all the way to 1.9 pi/2)\n",
    "      NOTE THAT this code does not consider nearly-shorted wedges -- those are a separate method called later if all mWP's > tWP's\n",
    "    \"\"\"   \n",
    "    isChange = False   #default; we are NOT changing angles\n",
    "    printDebuggg = False\n",
    "    NWEDGES = len(mWP)\n",
    "    avgWedgeAngle = 2.*math.pi / NWEDGES\n",
    "    minW = mWP.index(np.min(mWP))  #index of the wedge with the lowest max wedge pop\n",
    "    oppW = int( int(minW + NWEDGES/2) % NWEDGES )  #and its opposing wedge\n",
    "    Lstar = ( mWP[minW] / (0.25*ADP) )**0.5  #shortest wedge's nondim'l distance to boundary\n",
    "    \n",
    "    case = \"keep same wedge angles\" #default; no unfillable wedges or all but one are unfillable\n",
    "    if nUNFILLEDWEDGES >= NWEDGES:\n",
    "        raise Exception(\"ERROR! ALL WEDGES ARE CONSTRAINED for tract\",t,\".  IMPOSSIBLE!!\")\n",
    "    if nUNFILLEDWEDGES == 1:\n",
    "        case = \"constrain opp wedge\"\n",
    "        if Lstar >= LEVEL_L :\n",
    "            case = \"keep same wedge angles\"  #not close enough to boundary to distort HD shape\n",
    "    if nUNFILLEDWEDGES == 0 or nUNFILLEDWEDGES == NWEDGES - 1:  #far from boundary or with only one wedge w/large pop\n",
    "        case = \"keep same wedge angles\"   \n",
    "    if nUNFILLEDWEDGES == 2:  #must determine if opposite or adjacent           \n",
    "        if mWP[oppW] < tWP[oppW]:  #shorted wedges oppose each other, so ...\n",
    "            case = \"keep same wedge angles\" #...the HD shape will naturally widen to pick up adjacent pop\n",
    "        else:  #we have 2 adjacent (non-opposing) shorted wedges... but how shorted?  ID the adjacent wedge\n",
    "            for nW in range(NWEDGES):\n",
    "                if mWP[nW] < tWP[nW] and nW != minW :\n",
    "                    adjW = nW  #this is the adjacent wedge\n",
    "                    adjRatio = mWP[adjW] / tWP[adjW]\n",
    "            if adjRatio < MINADJRATIO:  #we're close to a corner (this adjacentWedge is significantly constrained)\n",
    "                case = \"keep same wedge angles\"\n",
    "                if printDebuggg :\n",
    "                    print(\"Not adjusting wedge angles for tract\",t,\"as 2nd-sparsest wedge\",adjW,\"has pop\",mWP[adjW] )\n",
    "            else:\n",
    "                case = \"constrain opp wedge\"  #we will set the angles and target pops as if the adj wedge were not constrained\n",
    "    \n",
    "    if case == \"keep same wedge angles\":\n",
    "        isChange = False\n",
    "        WEDGEANGLE = [avgWedgeAngle for w in range(NWEDGES) ]\n",
    "\n",
    "    if case == \"constrain opp wedge\":  #Here, we modify wedge angles.  MWP's will be recalc'd outside the method\n",
    "        isChange = True  \n",
    "        wideAngle = min(MAXANGLE, avgWedgeAngle*max(  1,( 1.+(MAXANGLERATIO-1.)*(LEVEL_L - Lstar)/(LEVEL_L - 0.) )  ) )\n",
    "        WEDGEANGLE = [(2.*pi - 2. * wideAngle)/ (NWEDGES - 2.) for w in range(NWEDGES) ]  \n",
    "        WEDGEANGLE[minW] = wideAngle\n",
    "        WEDGEANGLE[oppW] = wideAngle\n",
    "    \n",
    "    return isChange, WEDGEANGLE\n",
    "\n",
    "def rebalanceTWPs(MWP, TWP, BARREDLIST=list()):\n",
    "    \"\"\"\n",
    "    This method iteratively increases targetWedgePops to accommodate wedges that have maxWedgePop < targetWedgePop.\n",
    "    The wedgePop gap is distributed equally among wedges that have some capacity and are not BARRED (e.g. an opposite wedge in HD2 method)\n",
    "     (If this pushes some wedges over capacity, this will be fixed in a later run through loop inside this method)\n",
    "    We also flag which wedges \"will fill\" = have sufficient capacity after the rebalancing of the targets to not use the entire maxWedgePoly\n",
    "    \"\"\"\n",
    "    DEBUGrTWP = False\n",
    "    NWEDGES = len(MWP)\n",
    "    unorderedCapacity = [MWP[w] - TWP[w] for w in range(NWEDGES) ]\n",
    "    idx = np.argsort(unorderedCapacity)\n",
    "    #for nn in range(NWEDGES):\n",
    "    #    print(MWP[idx[nn]])\n",
    "    if np.min(TWP) < 0.99 * np.average(TWP) and DEBUGrTWP:  #debug\n",
    "        for nn in range(NWEDGES):\n",
    "            print(\"barred list, orig MWP, TWP\",BARREDLIST, r3(MWP[nn]),r3(TWP[nn]) )\n",
    "    \n",
    "    for nn in range(NWEDGES):  #going from least to most maxWedgePop here ...\n",
    "        nW = idx[nn]\n",
    "        if MWP[nW] < TWP[nW]: #need to redistribute extra target to higher-capacity wedges ...\n",
    "            wedgePopGap = TWP[nW] - MWP[nW]\n",
    "            TWP[nW] = MWP[nW]  #max out this wedge\n",
    "            nReceivers = 0.\n",
    "            for WW in range(NWEDGES):\n",
    "                if MWP[WW] > TWP[WW] and WW not in BARREDLIST:  #this wedge could take at least a little more ....\n",
    "                    nReceivers += 1.\n",
    "            for WW in range(NWEDGES):\n",
    "                if MWP[WW] > TWP[WW] and WW not in BARREDLIST:  #this wedge could take at least a little more ....                    \n",
    "                    TWP[WW] += wedgePopGap / nReceivers  #... so give it equal share of the gap, even if this goes over; we'll correct in later loop\n",
    "                    \n",
    "    WILLFILL = [1]*NWEDGES\n",
    "    for nW in range(NWEDGES):\n",
    "        if MWP[nW] < 1.001* TWP[nW]:  #required pop nearly or truly requires the entire wedge\n",
    "            WILLFILL[nW] = 0 \n",
    "    if np.min(TWP) < 0.99 * np.average(TWP) and DEBUGrTWP:  #debug\n",
    "        print(\"adjusted TWP's are\",TWP)\n",
    "    return TWP, WILLFILL\n",
    "\n",
    "def solveWedge(nontractTWP,t, hC, STARTANGLE, ENDANGLE, MAXD, TOLERPOPS, tractCP, tractPop,\n",
    "               countyTractList, countyGeom, countyPop, neighborCountyLIST,XSCALE=1.0):\n",
    "    \"\"\"\n",
    "    #### NO LONGER USED; SEE FASTER SOLVEWEDGEB BASED ON UNIT-UNIT DISTANCES  *********\n",
    "    This heart of the code solves the wedge radius that gives the closest wedgePop to the TargetWedgePop (which excludes the home tractPop)\n",
    "    The wedge has a fixed starting and ending angle.  Its maximum diameter is angle-related to max diameter of the state map\n",
    "    It uses bisection, NOT scipy minimize to minimize the square error in the wedge pop vs. target\n",
    "    The method passes back the final wedge pop and list of tracts in the wedge\n",
    "    \"\"\"\n",
    "    chgLoopNo, maxLoopNo = 10., 22.  #when we will start relaxing the pop tolerance, and when we give up\n",
    "    includedAngl = ENDANGLE - STARTANGLE\n",
    "    guessedR = MAXD / math.cos(0.5*includedAngl)  #max possible wedge radius, accounting for possible wide angle\n",
    "    popTol = TOLERPOPS[0]  #default tolerance = e.g. within 0.7 an AVERAGE tract's population.\n",
    "    #                      We loosen toward half the MAX tractPop if not converging\n",
    "    \n",
    "    offsetPop = 88888888.  #to force a reduction the first time through the loop\n",
    "    dr = guessedR\n",
    "    loopNo = 0\n",
    "    while abs(offsetPop) > popTol and loopNo < maxLoopNo:\n",
    "        loopNo +=1\n",
    "        popTol = max(TOLERPOPS[0], TOLERPOPS[0] + (TOLERPOPS[1] - TOLERPOPS[0]) * (loopNo - chgLoopNo) / (maxLoopNo - chgLoopNo) )\n",
    "        dr = 0.5*dr\n",
    "        guessedR -= dr*np.sign(offsetPop)\n",
    "        \n",
    "        guessedPoly = buildWedge(tractCP[t],STARTANGLE, ENDANGLE, guessedR,XSCALE) \n",
    "        iCP, iClist =  getCountyWP(t,guessedPoly, tractCP, tractPop, countyTractList[hC])\n",
    "        nonCP, nonClist = getNonCWP(guessedPoly, hC, tractCP, tractPop, countyGeom, countyPop, countyTractList, neighborCountyLIST)\n",
    "        offsetPop = iCP + nonCP - nontractTWP\n",
    "        #print(t,loopNo,r5(guessedR),int(iCP),int(nonCP),r3(offsetPop+nontractTWP),r3(nontractTWP),\"t,loop,R,iCP,nonCP,pop,target\")\n",
    "        if loopNo >= maxLoopNo-1:\n",
    "            print(\"WARNING. Looped\",loopNo,\"times for t,angles,R\",t,r3(STARTANGLE),r3(ENDANGLE),r5(guessedR),\n",
    "                  \"wedgePop offset, target are\",int(offsetPop), int(nontractTWP) )    \n",
    "    finalPop = iCP + nonCP\n",
    "    finalList = iClist + nonClist\n",
    "    return finalPop, finalList, guessedR, loopNo\n",
    "\n",
    "#above = bisection.  Below solveWedgeB uses static unit-unit distances\n",
    "# Also tried scipy minimize, which doesn't seem any faster\n",
    "\n",
    "def solveWedgeB(nontractTWP,T, HC, POLLY, TOLERPOP, TRACTCP, TRACTPOP, COUNTYNO,\n",
    "               COUNTYTRACTLIST, COUNTYGEOM, NEIGHBORCOUNTYLIST, UUDIST):\n",
    "    \"\"\"\n",
    "    This heart of the code solves the wedge radius that gives the closest wedgePop to the TargetWedgePop\n",
    "    We first determine which counties intersect the maxWedgePop to reduce the candidate list\n",
    "    We then go through the tract list from closest to farthest, adding any (from candidate counties) that intersect,\n",
    "     until the target pop is reached. Note that the passed UUDIST is the slice for unit t, not the full 2x2 array\n",
    "    \"\"\"\n",
    "    popTol = TOLERPOP  #default tolerance = e.g. within 0.7 an AVERAGE tract's population.\n",
    "    \n",
    "    #preliminary - restrict the found units to those in contiguous counties to the home county\n",
    "    checkedClist = [HC]\n",
    "    intersectedClist = [HC]\n",
    "    latestClist = [HC]\n",
    "    while len(latestClist) > 0:\n",
    "        newClist = list()    #we loop until we don't find any more neighbors with intersection\n",
    "        for c in latestClist:\n",
    "            for cc in NEIGHBORCOUNTYLIST[c]:\n",
    "                if cc not in checkedClist:\n",
    "                    checkedClist.append(cc)\n",
    "                    if POLLY.intersects(COUNTYGEOM[cc]):\n",
    "                        intersectedClist.append(cc)\n",
    "                        newClist.append(cc)\n",
    "        latestClist = newClist.copy()\n",
    "    \n",
    "    idx = np.argsort(UUDIST)  #sort order from closest to farthest to the home unit\n",
    "    \n",
    "    i, capturedPop, capturedList = 0, 0, list()\n",
    "    notFull = True\n",
    "    while notFull :  #capturedPop < nontractTWP - popTol : \n",
    "        i +=1    #this skips over the home tract\n",
    "        TT = idx[i]\n",
    "        if COUNTYNO[TT] in intersectedClist and TT != T:  #just to be sure\n",
    "            if POLLY.contains(TRACTCP[TT]):\n",
    "                capturedPop += TRACTPOP[TT]\n",
    "                capturedList.append(TT)\n",
    "                latestDist = UUDIST[TT]\n",
    "            if capturedPop > nontractTWP - popTol:\n",
    "                notFull = False\n",
    "                \n",
    "    return capturedPop, capturedList, latestDist    \n",
    "\n",
    "def solveWedgeC(nontractTWP,T, HC, POLLY, STARTANGL, ENDANGL, TOLERPOP, TRACTCP, TRACTPOP, COUNTYNO,\n",
    "               COUNTYTRACTLIST, COUNTYGEOM, NEIGHBORCOUNTYLIST, UUDIST, UUANGLE):\n",
    "    \"\"\"\n",
    "    This heart of the code solves the wedge radius that gives the closest wedgePop to the TargetWedgePop\n",
    "    We first determine which counties intersect the maxWedgePop to reduce the candidate list\n",
    "    We then go through the tract list from closest to farthest, adding any (from candidate counties) that\n",
    "    fall within the angle range (in lieu of wedgeB's check for intersection),\n",
    "     until the target pop is reached. Note that the passed UUDIST is the slice for unit t, not the full 2D array\n",
    "    \"\"\"\n",
    "    pi = 3.141592653\n",
    "    popTol = TOLERPOP  #default tolerance = e.g. within 0.7 an AVERAGE tract's population.\n",
    "    STARTANGL, ENDANGL = STARTANGL % (2.*pi), ENDANGL % (2.*pi)\n",
    "    #preliminary - restrict the found units to those in contiguous counties to the home county\n",
    "    checkedClist = [HC]\n",
    "    intersectedClist = [HC]\n",
    "    latestClist = [HC]\n",
    "    while len(latestClist) > 0:\n",
    "        newClist = list()    #we loop until we don't find any more neighbors with intersection\n",
    "        for c in latestClist:\n",
    "            for cc in NEIGHBORCOUNTYLIST[c]:\n",
    "                if cc not in checkedClist:\n",
    "                    checkedClist.append(cc)\n",
    "                    if POLLY.intersects(COUNTYGEOM[cc]):\n",
    "                        intersectedClist.append(cc)\n",
    "                        newClist.append(cc)\n",
    "        latestClist = newClist.copy()\n",
    "    \n",
    "    idx = np.argsort(UUDIST)  #sort order from closest to farthest to the home unit\n",
    "    \n",
    "    i, capturedPop, capturedList, latestDist = 0, 0, list(), 0.00001  #dummy value\n",
    "    notFull = True\n",
    "    while notFull and i < len(UUDIST) - 2 :  #capturedPop < nontractTWP - popTol : \n",
    "        i +=1    #this skips over the home tract\n",
    "        TT = idx[i]\n",
    "        if COUNTYNO[TT] in intersectedClist and TT != T:  #just to be sure\n",
    "            if isIncludedA(STARTANGL, ENDANGL, UUANGLE[TT]) : #POLLY.contains(TRACTCP[TT]):\n",
    "                capturedPop += TRACTPOP[TT]\n",
    "                capturedList.append(TT)\n",
    "                latestDist = UUDIST[TT]\n",
    "            if capturedPop > nontractTWP - popTol:\n",
    "                notFull = False\n",
    "                \n",
    "    return capturedPop, capturedList, latestDist \n",
    "\n",
    "\n",
    "def getPartialTract(t, HDTRACTLIST, offsetPop, UUDIST, tractPop, neighborLIST):\n",
    "    \"\"\"\n",
    "    If offsetPop is >0, this method identifies the tract with centroid farthest from Home t that can jettison at least offsetPop ...\n",
    "    ... by slicing out part of this tract.\n",
    "    If offsetPop <0, we ID a tract CLOSEST to Home t among neighbors of in-HD tracts to pick up a partial\n",
    "    We return the tractID and its new partial use\n",
    "    We have updated this method to pass the uuDist slice for tract t instead of computing tract distances inside here\n",
    "    \"\"\"\n",
    "    debugGPT = False\n",
    "    NTRACTS = len(tractCP)\n",
    "    bigDist = 9999999.\n",
    "    qualifyingTractList = list()\n",
    "    isWholeTract = False\n",
    "    if offsetPop > 0:\n",
    "        homeDist = [0.]*NTRACTS  #default = 0 to not get picked\n",
    "        for TT in HDTRACTLIST:\n",
    "            if tractPop[TT] > offsetPop:\n",
    "                qualifyingTractList.append(TT)\n",
    "        for TT in qualifyingTractList:\n",
    "            homeDist[TT] = UUDIST[TT]\n",
    "        if len(qualifyingTractList) == 0:  #very rare case where all in-HD tracts are too small.  Jettison nearly the whole farthest one\n",
    "            isWholeTract = True\n",
    "            for TT in HDTRACTLIST:\n",
    "                if tractPop[TT] > 0.9*np.average(tractPop): #set arbitrary min qualifying pop\n",
    "                    homeDist[TT] = UUDIST[TT]\n",
    "        targetT = homeDist.index(np.max(homeDist))\n",
    "        partialUseFrac = max(0.0001,(tractPop[targetT] - offsetPop)/tractPop[targetT] )\n",
    "        if debugGPT:\n",
    "            print(\"positive offsetPop =\",offsetPop,\", ID'd tract\",targetT,\"with pop\",tractPop[targetT] )\n",
    "    else: #pick up a partial\n",
    "        homeDist = [bigDist]*NTRACTS\n",
    "        for TT in HDTRACTLIST:\n",
    "            for TTT in neighborList[TT]:\n",
    "                if TTT not in qualifyingTractList and TTT not in HDTRACTLIST and tractPop[TTT] > abs(offsetPop):\n",
    "                    qualifyingTractList.append(TTT)\n",
    "        for TTT in qualifyingTractList:\n",
    "            homeDist[TTT] = UUDIST[TTT]\n",
    "        if len(qualifyingTractList) == 0 :  #rare case where most nearby tracts are small.  Add nearly the whole biggest one\n",
    "            isWholeTract = True\n",
    "            maxPop = 0.\n",
    "            targetT = -999\n",
    "            for TT in HDTRACTLIST:\n",
    "                for TTT in neighborList[TT]:\n",
    "                    if TTT not in qualifyingTractList and TTT not in HDTRACTLIST : # we'll take just one, even if doesn't fill gap\n",
    "                        qualifyingTractList.append(TTT)\n",
    "            for TTT in qualifyingTractList:\n",
    "                if tractPop[TTT] > maxPop:\n",
    "                    targetT = TTT\n",
    "                    maxPop = tractPop[targetT]\n",
    "        else:\n",
    "            targetT = homeDist.index(np.min(homeDist))\n",
    "        partialUseFrac = min(0.9999, -1.* offsetPop/tractPop[targetT] )\n",
    "        if debugGPT:\n",
    "            print(t,\"'s negative offsetPop =\",offsetPop,\", ID'd tract\",targetT,\"with pop\",tractPop[targetT] )\n",
    "    \n",
    "    return targetT, partialUseFrac\n",
    "\n",
    "def getAdjoiners(UNITLIST, UNITNBRS): #returns all units that neighbor a UNITLIST but are not in the UNITLIST \n",
    "    allNbrs = list()\n",
    "    for U in UNITLIST:\n",
    "        allNbrs = allNbrs + UNITNBRS[U]\n",
    "    adjoiners = list( set(allNbrs).difference(set(UNITLIST)) )\n",
    "    return adjoiners\n",
    "\n",
    "def get2nbrs(ULIST, UNITNBRS):\n",
    "    \"\"\"\n",
    "    Get the combined list of first- and second-level neighbors of a LIST, using neighborList connectivity.  Excludes the source list\n",
    "    \"\"\"\n",
    "    firstList =  getAdjoiners(ULIST, UNITNBRS)\n",
    "    secondList = getAdjoiners(firstList, UNITNBRS)\n",
    "    twoLevelList = list( set(firstList + secondList).difference(set(ULIST) ) )\n",
    "    return twoLevelList\n",
    "\n",
    "def getContigFromStarter(starter, VLIST, NEIGHBORLIST):  #all contiguous units in VLIST, starting from starter unit\n",
    "    foundList, newList, prevList = [ starter ], [ starter ], [ starter ]\n",
    "    while len(newList) > 0:\n",
    "        newList = list()\n",
    "        for V in prevList:\n",
    "            for VV in NEIGHBORLIST[V]:\n",
    "                if VV in VLIST and VV not in foundList:\n",
    "                    newList.append(VV)\n",
    "                    foundList.append(VV)\n",
    "        prevList = newList.copy()        \n",
    "    return foundList   \n",
    "\n",
    "def isContiguous(VLIST,NEIGHBORLIST,returnBiggestPiece=False):\n",
    "    \"\"\"\n",
    "    This method determines if all items in a list form a continuous chain of neighbors based on the passed neighborlist\n",
    "    Empty lists are considered contiguous.  If discontiguous, a less-than-majority piece list is returned,\n",
    "     unless giveBig=True, in which case we return the biggest piece\n",
    "    \"\"\"    \n",
    "    isUnbroken, newList, foundList = True, list(), list()\n",
    "    if len(VLIST) > 0:\n",
    "        foundList, newList, prevList = [ VLIST[0] ], [ VLIST[0] ], [ VLIST[0] ]\n",
    "    while len(newList) > 0:  #this round's list of neighbors\n",
    "        newList = list()\n",
    "        for V in prevList:\n",
    "            for VV in NEIGHBORLIST[V]:\n",
    "                if VV in VLIST and VV not in foundList:\n",
    "                    newList.append(VV)\n",
    "                    foundList.append(VV)\n",
    "        prevList = newList.copy()      \n",
    "    pickedPieceList = foundList.copy()  #default contiguous sublist to pass back to main\n",
    "    \n",
    "    if len(foundList) < len(VLIST):  #not contiguous\n",
    "        isUnbroken  = False\n",
    "        pieceLists, remainingList = [foundList], list( set(VLIST).difference(set(foundList) ) )\n",
    "        if returnBiggestPiece == True:  #we were asked for the biggest piece, not a random small one, so we must find them all\n",
    "            if len(foundList) < 0.5*len(VLIST):\n",
    "                while len(remainingList) > 0:\n",
    "                    newList = getContigFromStarter(remainingList[0], remainingList, NEIGHBORLIST)\n",
    "                    pieceLists.append(newList)\n",
    "                    remainingList = list(set(remainingList).difference(set(newList)))\n",
    "                pieceLengths = [len(pL) for pL in pieceLists]\n",
    "                pickedPieceList = pieceLists[ pieceLengths.index(np.max(pieceLengths)) ]\n",
    "            \n",
    "        else: #quickly return a contiguous sub-list that's at most half the total units in the list\n",
    "            if len(foundList) > 0.5*len(VLIST): #pick a different piece; this one is the majority\n",
    "                pickedPieceList = getContigFromStarter(remainingList[0], remainingList, NEIGHBORLIST)\n",
    "                \n",
    "    return isUnbroken, pickedPieceList\n",
    "\n",
    "def enclaveCheck(UNITLIST,UNITNBRS,maxLoops=2):  #TRY 2 FOR OHIO V2.  USUALLY 4\n",
    "    \"\"\"\n",
    "    This method determines if a list of units has an unbroken boundary AND whether its complement has an unbroken boundary\n",
    "    If the complement boundary is broken, there is an enclave or the district is so disconnected its adjoining units aren't contiguous\n",
    "    The method returns contiguity of boundary and of its adjoiners.  Also returns the lists of boundary and complement-boundary units\n",
    "      If either of these is broken, only a contiguous sublist is returned that is guaranteed to be smaller than half (for finding enclaves)\n",
    "      maxLoops is the number of loops for expanding neighbors-of-neighbors for contiguity of the units outside the passed unit-list\n",
    "    \"\"\"\n",
    "    UNITSET = set(UNITLIST)\n",
    "    ADJLIST =  get2nbrs(UNITLIST, UNITNBRS)  #in case direct adjoiners are only queen-adjacent\n",
    "    #adjoinersOfAdjoiners = getAdjoiners(ADJLIST,  UNITNBRS)\n",
    "    #BDRYLIST = list( set(UNITLIST).intersection(set(adjoinersOfAdjoiners)) )  #this might fail for queen-adjacent boundary units\n",
    "    BDRYLIST = list (set(get2nbrs(ADJLIST,UNITNBRS)).intersection(UNITSET) )  #in case inHD boundary is only queen-adjacent\n",
    "    noEnclave, enclaveList =   isContiguous(ADJLIST, UNITNBRS)  \n",
    "    unbroken, smallPieceList = isContiguous(BDRYLIST, UNITNBRS)\n",
    "    if not unbroken: #could be that district's boundary intersects the state boundary or there is a nonHD enclave inside the HD\n",
    "        unbroken, smallPieceList = isContiguous(UNITLIST, UNITNBRS)  #slower check for full district, not just its boundary \n",
    "    nLoops = 1 #could be that fragmented adjoining districts are underestimating true contiguity.  Widen the contig search\n",
    "    while nLoops <= maxLoops and not noEnclave:\n",
    "        nLoops +=1\n",
    "        newSet = set(ADJLIST)\n",
    "        for UU in ADJLIST:\n",
    "            newSet = newSet.union( set(UNITNBRS[UU]).difference(UNITSET) )\n",
    "        ADJLIST = list(newSet)\n",
    "        noEnclave, enclaveList =   isContiguous(ADJLIST, UNITNBRS)\n",
    "    #isJiggy = noEnclave and unbroken\n",
    "    return unbroken, noEnclave, smallPieceList, enclaveList\n",
    "\n",
    "def getBdryNonEdgers(UNITLIST, UNITNBRS): #all in-district boundary units that neighbor a non-district unit\n",
    "    ALLnonHDnbrs = set()\n",
    "    for UUU in UNITLIST:\n",
    "        ALLnonHDnbrs = ALLnonHDnbrs.union(set(UNITNBRS[UUU])).difference(set(UNITLIST))\n",
    "    BdryNonEdgerSet = set()\n",
    "    for UUU in UNITLIST:\n",
    "        if len(set(UNITNBRS[UUU]).intersection(ALLnonHDnbrs)) > 0:\n",
    "            BdryNonEdgerSet.add(UUU)\n",
    "    return list(BdryNonEdgerSet)\n",
    "\n",
    "def getEnclaveLists(UNITLIST, UNITNBRS):\n",
    "    \"\"\"\n",
    "    finds ALL units enclaved by a UNITLIST, parsed into lists of contiguous pieces\n",
    "    We assume the largest contiguous complement to the UNITLIST is not an enclave, but rather the majority of the HD complement\n",
    "    if the UNITLIST's complement (all couldBeEnclaved) is contiguous, the returned list will be blank\n",
    "    \"\"\"\n",
    "    eSets, nU = list(), len(UNITNBRS)\n",
    "    offmapList = list()\n",
    "    for i,L in enumerate(UNITNBRS):\n",
    "        if len(L) == 0:\n",
    "            offmapList.append(i)  #offmap list are units with no neighbors (were surrounded)\n",
    "    complementSet = set([i for i in range(nU)] ).difference( set(UNITLIST + offmapList) )    \n",
    "    remaining2nbrs = get2nbrs(UNITLIST, UNITNBRS)\n",
    "    \n",
    "    isContig, shortList = isContiguous(remaining2nbrs,UNITNBRS) #quicker than contig check on entire complement\n",
    "    while not isContig:  #this will kick out before writing the final sublist = map majority\n",
    "        starter = shortList[0]\n",
    "        newEnclaveList = getContigFromStarter(starter, list(complementSet), UNITNBRS)\n",
    "        eSets.append(set(newEnclaveList))\n",
    "        remaining2nbrs = list(set(remaining2nbrs).difference(set(shortList)) )\n",
    "        isContig, shortList = isContiguous(remaining2nbrs,UNITNBRS)\n",
    "        \n",
    "        # couldBeEnclaved = list( set(couldBeEnclaved).difference(set(newEnclaveList)) )  #revised 18-Feb-24 -- was slower\n",
    "    fused_eSets = set()\n",
    "    for i, eSet in enumerate(eSets):\n",
    "        fused_eSets = fused_eSets.union(eSet)\n",
    "        for j in range(i+1, len(eSets) ) :\n",
    "            eSets[j] = eSets[j].difference(eSet)  #in case contiguity occurs, but not in 2-neighbor list; avoid double-count\n",
    "    remnant_eSet = complementSet.difference(fused_eSets) \n",
    "    eLengths = [len(eSet) for eSet in eSets]\n",
    "    if len(eSets) > 0:\n",
    "        if len(remnant_eSet) < np.max(eLengths):  #exchange the small remnant for the biggest found \"enclave\" (usually the major complement) \n",
    "            eSets[eLengths.index(np.max(eLengths))] = remnant_eSet.copy()\n",
    "    eLists = [list(eSet) for eSet in eSets]\n",
    "    return eLists\n",
    "\n",
    "def wontEnclave(proposedU, dList, NBRLIST, mapBDRYLIST):  #TRY MAXLOOPS = 3 FOR OH REDO, NOT USUAL 6\n",
    "    \"\"\"\n",
    "    This method checks if adding a proposedU to a dList (list of units in a district) will create an \"enclave\" of units in the dList's complement\n",
    "    via two problems:  A) the dList will now have a discontiguous set of units on the map boundary.  The full map boundary list is mapBDRYLIST\n",
    "      B) The non-dList neighbors of dList units aren't contiguous\n",
    "    The method doesn't require that the dList wontEnclave without the proposedU included; it just checks the proposedU + dList combination\n",
    "    It also doesn't check that the dList is itself contiguous with or without proposedU\n",
    "    In that sense, it is more limited than enclaveCheck\n",
    "    \"\"\"\n",
    "    wontEnclave = True\n",
    "    newList, newSet = dList + [proposedU], set(dList + [proposedU])\n",
    "    unitsOnBoundary = list( set(mapBDRYLIST).intersection(newSet) )\n",
    "    wontEnclave, __ = isContiguous(unitsOnBoundary,NBRLIST)  #first check - does district touch MAP boundary in multiple places? (quick FAIL)\n",
    "    if wontEnclave: #slower check below for internal enclaves\n",
    "        adjoiners = get2nbrs(newList, NBRLIST)  #2-level to protect for queen adjacency in boundary        \n",
    "        wontEnclave, __ = isContiguous(adjoiners,NBRLIST)\n",
    "        if not wontEnclave:\n",
    "            nLoops = 1 #could be that fragmented adjoining districts are underestimating true contiguity.  Widen the contig search\n",
    "            maxLoops, ADJLIST = 3, adjoiners #unlike enclaveCheck, here we just arbitrarily set a number of loops for search expansion\n",
    "            while nLoops <= maxLoops and not wontEnclave:\n",
    "                nLoops +=1\n",
    "                adjSet = set(ADJLIST)  #align nomenclature w enclaveCheck\n",
    "                for UU in ADJLIST:\n",
    "                    adjSet = adjSet.union( set(NBRLIST[UU]).difference(set(newList)) )\n",
    "                ADJLIST = list(adjSet)\n",
    "                wontEnclave, __ =   isContiguous(ADJLIST, NBRLIST)\n",
    "        \n",
    "    return wontEnclave\n",
    "\n",
    "def isRookAdj(geo1, geo2):  #intersection with rook (not queen) adjacency\n",
    "    isRookAdj = False\n",
    "    if geo1.intersects(geo2):\n",
    "        if (geo1.intersection(geo2)).geom_type != Point(0,0).geom_type:\n",
    "            isRookAdj = True\n",
    "    return isRookAdj"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "d041d328-83e0-45db-a869-e0956c23ee26",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdin",
     "output_type": "stream",
     "text": [
      "Enter the state postal code; e.g. OH  OH\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "OK, enter 1 below to use oh_pl2020_vtd.dbf as this state's population data file\n"
     ]
    },
    {
     "name": "stdin",
     "output_type": "stream",
     "text": [
      "  1\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "attempting to read in state unit geometries.  Stand by ...\n",
      "I read in the Census popn data. OH has 11799448 peeps and is divided into 8941 shapes.\n"
     ]
    }
   ],
   "source": [
    "STATE = str(input(\"Enter the state postal code; e.g. OH \")).upper()\n",
    "popFilename = STATE.lower()+\"_pl2020_vtd.dbf\"\n",
    "print(\"OK, enter 1 below to use\",popFilename,\"as this state's population data file\")\n",
    "enter1 = input(\" \")\n",
    "if int(enter1) != 1:\n",
    "    popFilename = input(\"OK, then enter the pop data file.  Typically a xx_pl2020_vtd.dbf\")\n",
    "print(\"attempting to read in state unit geometries.  Stand by ...\")\n",
    "tractPopFile = gpd.read_file(\"state_map_files/\"+popFilename)\n",
    "trueTractGeom = tractPopFile['geometry']\n",
    "nTracts = len(trueTractGeom)\n",
    "tractPop = tractPopFile['P0010001']\n",
    "statePop = np.sum(tractPop)\n",
    "censusGEOID20 = tractPopFile['GEOID20']\n",
    "print(\"I read in the Census popn data.\",STATE,\"has\",statePop,\"peeps and is divided into\",nTracts,\"shapes.\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "3bfdea9d-b0ea-497a-a556-6b488a3e333e",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdin",
     "output_type": "stream",
     "text": [
      "Enter the number of districts in the state.  My guess is 16 18\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "There appear to be 88 counties in OH .  I will assign them county Nos 0 - 87\n"
     ]
    }
   ],
   "source": [
    "tractGeom = trueTractGeom.copy()   #for some states, we will modify geom, so preserve original\n",
    "#tractNAME20 = tractPopFile['NAME20']\n",
    "tractPop = tractPopFile['P0010001']\n",
    "inputfileCountyNo = tractPopFile['COUNTYFP20']\n",
    "vtdGEOID20 =  tractPopFile['GEOID20'] \n",
    "nDistricts = int(round(statePop/760000,0))\n",
    "nCutDistricts = 0\n",
    "nDistricts = int(input(\"Enter the number of districts in the state.  My guess is \"+str(nDistricts)))\n",
    "tractArea = [tractGeom[t].area for t in range(nTracts)]\n",
    "trueTractCP =   [tractGeom[t].centroid for t in range(nTracts)]\n",
    "tractCP = trueTractCP.copy()  #for some states, we move secluded corners into the map, so save the true data\n",
    "tractCPx =  [tractCP[t].x for t in range(nTracts)]\n",
    "tractCPy =  [tractCP[t].y for t in range(nTracts)]\n",
    "inputCountyNumbers = list()\n",
    "for t in range(nTracts):\n",
    "    if inputfileCountyNo[t] not in inputCountyNumbers:\n",
    "        inputCountyNumbers.append(inputfileCountyNo[t])\n",
    "nCounties = len(inputCountyNumbers)\n",
    "print(\"There appear to be\",nCounties,\"counties in\",STATE,\".  I will assign them county Nos 0 -\",int(nCounties-1))\n",
    "sortedICNs = list(np.sort(inputCountyNumbers))\n",
    "countyNo = [sortedICNs.index(inputfileCountyNo[t]) for t in range(nTracts) ]\n",
    "\n",
    "isSkippedTract = [0] *nTracts  #this will house a temporary list of tracts for manipulation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "4d63de2d-5047-4086-9005-e85f3c80f969",
   "metadata": {},
   "outputs": [
    {
     "name": "stdin",
     "output_type": "stream",
     "text": [
      "enter the counties to be mapped; e.g. [24, 30] for Franklin and Hamilton [24,30]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "You entered the following county numbers [24, 30]\n"
     ]
    }
   ],
   "source": [
    "cList = input(\"enter the counties to be mapped; e.g. [24, 30] for Franklin and Hamilton\")\n",
    "cList = ast.literal_eval(cList)\n",
    "print(\"You entered the following county numbers\",cList)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "adffc7a4-a78c-477f-8ea4-7f8e5109fa2a",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "We will now build the county-by-county geometries, hoping there are no islands\n",
      "Here is your original county-based map b4 any triage; e.g eliminating coastal unpopulated tracts w pop < 4.5\n"
     ]
    },
    {
     "data": {
      "image/png": "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r5YkLV26VKNGjVJubq42bNig2bNnq6ioSPn5+dE2JkyYoGnTpmnWrFmSpKKiIp111lm67777dOWVV+r999/X448/rscff7wbdxMAAMSzDgWWiooKzZgxQ+Xl5XK73SooKNDq1at14YUXSpJKS0tVXFysw4cPa9iwYbr77rtVVFTUpI3GIaNGp512mlauXKni4mLde++9Gj58uB588EFNnz69G3YPAAAkgi6vw2IVrMMCAED86fF1WAAAAI4WAgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALA8AgsAALC8DgWWxYsXq6CgQC6XSy6XS4WFhVq1alX0+bKyMk2bNk25ublyuVy68sortX///na3v2DBAtlsNt1+++0dKQsAACS4DgWWIUOGaMGCBdqyZYs2b96sCy64QFOnTtX27dtVU1OjSZMmyWazqaSkRO+8847q6+s1ZcoURSKRNtvetGmTlixZooKCgk7vDAAASEw2wzCMrjSQk5OjhQsXKi8vT5MnT1ZlZaVcLpckyePxqE+fPnrttdc0ceLEFtuorq7WuHHj9Nhjj+nXv/61Tj75ZD344IMdqsPr9crtdsvj8UQ/HwAAWFt7f787PYclHA5r+fLlqqmpUWFhoQKBgGw2m5xOZ/Q1qampstvtWr9+fattzZw5U9///vdbDTXfFggE5PV6m9wAAEBi6nBg2bZtmzIzM+V0OnXzzTdr5cqVGj16tM4880xlZGRo7ty5qq2tVU1Nje68806Fw2GVl5e32N7y5cv1wQcfaP78+R2qY/78+XK73dFbXl5eR3cFAADEiQ4Hlvz8fG3dulUbN27ULbfcomuvvVY7duxQbm6uVqxYoZdfflmZ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DodDOTk5zQ41oWPac9waXX311XrxxRdVV1enKVOm6I9//GOrbfNd6xk9dcz4rrWOHpZeZt68eUdMwvv2befOnTIMQzNnzlT//v21bt06vf/++7rssss0ZcoUlZeXS5KKi4s1atQoXXPNNR2qYc6cOfrud7+rgoIC3Xzzzbr//vv1yCOPKBAI9MQuxz0rHDN0XHcet0aLFi3SBx98oBdffFFlZWWaM2dOqzXwXesYKxwztIyl+XuZAwcO6NChQ62+5thjj9W6des0adIkVVZWNrk0+ogRI3TjjTdq3rx5Ovnkk7Vt2zbZbDZJkmEYikQiSkpK0t13361f/epX7app+/btGjt2rHbu3Kn8/PzO71yCivUxe/LJJ3XHHXeosrIyui0UCik1NVUrVqzQtGnTumlPE0t3HrfmrF+/Xueee6727t2rQYMGtasmvmuti/Ux47vWOoaEepnc3Fzl5ua2+bra2lpJOmKOg91uVyQSkST99a9/VV1dXfS5TZs26YYbbtC6det03HHHtbumrVu3RrtUcaRYH7PCwkJVVVVpy5Yt0fH5kpISRSIRnXHGGZ3ap96gO49bcxqf60hvCd+11sX6mPFda0Ps5vvCyg4cOGD07dvXuPzyy42tW7capaWlxp133mkkJycbW7dubfY9b7311hFnnGzcuNHIz883vvzyS8MwDOPdd981Fi1aZGzdutUoKysznn32WSM3N9eYMWPG0dithNZTx8wwDOPiiy82TjnlFGPjxo3G+vXrjREjRhhXX311T+9Sr9Ce4/b3v//dePLJJ41t27YZu3btMl555RVj1KhRxtlnnx1th+/a0dNTx8ww+K61hsCCFm3atMmYNGmSkZOTY2RlZRlnnnmm8Y9//KPF1zf349e4bdeuXYZhGMaWLVuMM844w3C73UZqaqoxatQo47777jP8fn8P703v0BPHzDAM49ChQ8bVV19tZGZmGi6Xy7j++usNn8/Xg3vSu7R13EpKSozCwsLo92bEiBHG3Llz+a7FUE8cM8Pgu9Ya5rAAAADL4ywhAABgeQQWAABgeQQWAABgeQQWAABgeQQWAABgeQQWAABgeQQWAABgeQQWAABgeQQWAABgeQQWAABgeQQWAABgeQQWAABgef8PiPIjE9xYx7UAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(\"We will now build the county-by-county geometries, hoping there are no islands\")\n",
    "skipList = list()  #a list of units we previously know to skip in the map\n",
    "liveCountyList = cList.copy() #nomenclature\n",
    "isAlteredCounty = [False for c in range(nCounties)]\n",
    "countyTractList = [list() for c in range(nCounties)]\n",
    "countyPop =       [0. for c in range(nCounties)]\n",
    "countyGeom =      [dummyPoly for c in range(nCounties)]\n",
    "for t in range(nTracts):\n",
    "    if t not in skipList:\n",
    "        c = countyNo[t]\n",
    "        if c in liveCountyList:\n",
    "            countyTractList[c].append(t)\n",
    "            countyPop[c] += tractPop[t]\n",
    "for c in liveCountyList: #range(nCounties):\n",
    "    if c%20 == 0:\n",
    "        print(\"Building county geom for county\",c)\n",
    "    for t in countyTractList[c]:\n",
    "        if countyGeom[c] == dummyPoly:\n",
    "            countyGeom[c] = tractGeom[t]\n",
    "        else:\n",
    "            countyGeom[c] = countyGeom[c].union(tractGeom[t])\n",
    "origMAP = countyGeom[liveCountyList[0]] #countyGeom[0]\n",
    "for c in liveCountyList: #range(nCounties):\n",
    "    origMAP = origMAP.union(countyGeom[c])\n",
    "    if countyGeom[c] == dummyPoly:\n",
    "        print(\"WARNING! county\",c,\"is empty!\")\n",
    "    else:\n",
    "        plotPoly(countyGeom[c])\n",
    "        plotCenter(c,countyGeom[c])\n",
    "minTractPop = 4.5\n",
    "print(\"Here is your original county-based map b4 any triage; e.g eliminating coastal unpopulated tracts w pop <\",minTractPop)\n",
    "plt.show()\n",
    "if origMAP.geom_type == dummyPoly.geom_type:\n",
    "    mapExterior = origMAP.exterior\n",
    "else:\n",
    "    for i,geo in enumerate(origMAP.geoms):\n",
    "        if i == 0:\n",
    "            mapExterior = geo.exterior\n",
    "        else:\n",
    "            mapExterior = mapExterior.union(geo.exterior)\n",
    "\n",
    "for c in liveCountyList: #range(nCounties):\n",
    "    for t in countyTractList[c]:\n",
    "        if tractPop[t] < minTractPop:\n",
    "            if tractGeom[t].intersects(mapExterior):\n",
    "                isAlteredCounty[c] = True\n",
    "                skipList.append(t)\n",
    "#print(\"There appear to be\",len(skipList),\"unpopulated coastal tracts.  Lets plot them and their parent counties\")\n",
    "#for t in skipList:\n",
    "#    plotPoly(tractGeom[t])\n",
    "#    plotCenter(t,tractGeom[t],6)\n",
    "#plotPoly(origMAP,0.2)\n",
    "#for c in range(nCounties):\n",
    "#    if isAlteredCounty[c]:\n",
    "#        plotPoly(countyGeom[c])\n",
    "#plt.show()\n",
    "trueMAP = origMAP  #use these terms interchangeably"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "7a6c93c4-af08-47d5-90f7-dc0b4513aad5",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Last chance to alter the skipList, otherwise the above 1 units will be axed\n",
      "here is the proposed skipList [1568]\n",
      "here is the final skipList [1568]\n"
     ]
    }
   ],
   "source": [
    "print(\"Last chance to alter the skipList, otherwise the above\",len(skipList),\"units will be axed\")\n",
    "print(\"here is the proposed skipList\", skipList)\n",
    "#skipList = [1939, 1364] #...  #alter here if needed - 1874, 1270, 1497, 1771 create contiguity problems if axed\n",
    "print(\"here is the final skipList\", skipList)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "2989f381-466b-4882-bf1d-cfa37a7ba8ef",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "I will now preserve the original county unit lists and geoms, then rebuild as needed\n",
      "removing coastal units from countyNo 30\n",
      "Here is the revised state county map after eliminating coastal tracts\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiwAAAGdCAYAAAAxCSikAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA+mklEQVR4nO3deXxU5d3///dMJpmsMyEQthIEFSOLUcEt7hVEuSsi2upt8cbtvqveoAhqIbetbf22QstXcalStHX7KT8srdSlRVwiKIoIKC3CDWpEQUkISzIzWWYyy/n+cZKRSPaFcyZ5PR+PeUxycuaaz/F0Om+u6zrXcRiGYQgAAMDGnFYXAAAA0BoCCwAAsD0CCwAAsD0CCwAAsD0CCwAAsD0CCwAAsD0CCwAAsD0CCwAAsD2X1QV0lVgspj179igrK0sOh8PqcgAAQBsYhqFAIKDBgwfL6Wy+H6XHBJY9e/YoLy/P6jIAAEAH7N69W0OGDGn27z0msGRlZUkyD9jj8VhcDQAAaAu/36+8vLz493hzekxgaRgG8ng8BBYAABJMa9M5mHQLAABsj8ACAABsj8ACAABsj8ACAABsj8ACAABsj8ACAABsj8ACAABsj8ACAABsj8ACAABsj8ACAABsj8ACAABsj8ACAABsr8fc/BAA0DvtPlijaMxQ38wUZbpdrd5ED4mJwAIASFjBcFTn/O7t+O9ul1N90lPULytFntRk85HmUtZhP7vkSUtWVqpLWe5kpbuTlOl2ye1yEnhsisACAEhY4WhMkjTt9KE6bXiODlTVqbKmTvur6xQIRuSvDWtvICh/bdj8PRhWMBxrtj2nQ8pIcSnD7YqHmPSUpPi2DHeS0ht+TklSutulzPpt8X3dh/w9xaUUF7MvugKBBQCQsIz657OO7ad/O2FQm15TF4kpEAzLXx9oqkMRVYUiqqmLqrououpQRNWhqPlcF1VN/bZ9gZC+OnDIvvV/j8aMFt8vJcmpDHeSMut7c7JSv+3lafi58fPh2zNSknp9zw+BBQCQsIz6zpL2fJWnuJzqm+lW30x359/fMBSKxA4JMN8Gnpq6iKrqnwNBM+gEgmZPTyAY0e6KmvjPgWBYVaGImss+ToeU6f42xHgahZv6bWnfDnt5mtjmdiV1+nitRGABACQso76PxarOB4fDodTkJKUmJyknI6VTbRmGoeq66CGhxuwFigeaQ342h7ciKvUF9eneKvkPeU1zoSfF5azv1Tkk7LgP793xpCabvUHf2d43w60kp3W9PAQWAEDCMuJfzok/XOJwOJTpNufCDPJ2rI1YzFB1fY+OPxiWv9Yc9jJ/rg81ocZhaG8g2CgI1dRFm2x76snf06KrTur4AXYSgQUAkLAa8kovn94R53Q66ntFkjVYaR1qIxKN1Q9fReI9N/NXbpe/NtzF1bYPgQUAkLCM+i4WJ4mly7iSnMpOT1F2+rdDXGnJTmWmWhsZuNYKAJCwGuZrEFe6VyAYUaabwAIAQIdYPem2t6gKRSzvYWFICABgaw+/9ZlKfbVKSXLKnZwkt8tZ/0iSr35eBYGle1UFI8qyuIeFwAIAsK1gOKoH3vhUQ3PSlZ6SpLpITKFITKFIVKFwTIFQRE6HNNDTsQmmaJtAKKKs1GRLayCwAABs62B1nSTp/1w2Rucdl9vkPoZh9PpVYLtTKBJVXSTGHBYAAJrTEFhy0ptflI2w0r2qQ+a6LFbPYSGwAABsqyGw9MmwdjiiN6sKRiTJ8jksBBYAgG1V1NT3sHRy2Xt0XCBkTmymhwUAgGZU1oSV4nIqLTmxb9yXyBp6WJjDAgBAMyprwspOS2aeioWqQvWBhR4WAACaVllbp+x05q9YqSGwZLmtPQ8EFgCAbflqwspOY/6KlQLBiJKcDqUmWxsZCCwAANuqrA3LSw+LpapCEWWluiwfliOwAABsq7KmTtlpBBYrVdngxocSgQUAYGOVtWHmsFisKkRgAQCgRb6asLJbWOUW3S8QNIeErEZgAQDYkmEY5hwWhoQsVRUK08MCAEBzqkIRRWMGQ0IWqwpFlEFgAQCgaZU15pLwXNZsLX9tRB4b9HJZH5kAAL2OYRiqrAkr2eVUqsspV9Lh/36OBxZ6WCwVCIblSbX+HBBYAABH3G9f26E/rCmJ/57icsqblhx/ZKW6VFF/p2bmsFjLH4zIk2Z9XLC+AgBAr7PuiwM6eWi2bjhruGrDUdWEIvLVRuSrDctXG1YgGNaQPukad1SOBmenWV1ur2UYhvy1YWXRwwIA6I0GZLm1dY9f40f2V3oKX0V2VRuOKhIz5OGyZgBAb3TB8f31TWWt9gVCVpeCFvhrzRsf2mHSLYEFAHDEbS8LaIDHraE56VaXghYEgubEZztMuiWwAACOuOLt5bp49EDLb6iHlvnjgYUhIQBALxQzDD23fpcOVDEkZGcMCQEAerX7pp6gaMzQxq8qrC4FLfAzJAQA6M3OGdFPkvThzoMWV4KW+IMRuZwOpSZbHxesrwAA0OvU1EXlcEjHDci0uhS0wF8blict2RZzjQgsAIAjbntZQIYhjfme1+pS0AJ/MGyLCbdSJwPLggUL5HA4dPvtt8e3BYNBzZgxQ3379lVmZqauuOIK7d27t8V2DMPQPffco0GDBiktLU0TJkzQZ5991pnSAAA21vAP9ljM2jrQMrvc+FDqRGDZsGGDlixZooKCgkbbZ8+erVdeeUXLly/XmjVrtGfPHl1++eUttvW73/1ODz/8sP7whz9o/fr1ysjI0EUXXaRgMNjR8gAANjaivzkUtL3Mb3ElaIk/GFZWIvewVFVVadq0aXriiSfUp0+f+Hafz6c//elPeuCBB3TBBRdo3Lhxeuqpp/T+++/rgw8+aLItwzD04IMP6mc/+5mmTJmigoICPfvss9qzZ4/+9re/deigAAD29ZdNX+vKJeZ3wqjBHourQUsCwYgtrhCSOhhYZsyYoR/84AeaMGFCo+2bNm1SOBxutP3444/X0KFDtW7duibb2rlzp8rKyhq9xuv16vTTT2/2NZIUCoXk9/sbPQAA9vf74s/0v6V+3TtltEYPZg6Lnflrw4kbWJYtW6aPPvpI8+fPP+xvZWVlSklJUXZ2dqPtAwYMUFlZWZPtNWwfMGBAm18jSfPnz5fX640/8vLy2nkkAAAr3HzeMZIkr03mRrTX/PnzdeqppyorK0v9+/fXZZddph07djS5r2EYmjRpkhwOR0KOGviDYXnSEnBIaPfu3Zo1a5aef/55paamdldNbVJUVCSfzxd/7N6929J6AABt8++nDdXYodn6ffHnqq2LWl1Ou61Zs0YzZszQBx98oDfeeEPhcFgTJ05UdXX1Yfs++OCDtrgkuKP8tRFlJWIPy6ZNm1ReXq6xY8fK5XLJ5XJpzZo1evjhh+VyuTRgwADV1dWpsrKy0ev27t2rgQMHNtlmw/bvXknU0mskye12y+PxNHoAABLDgisKtLuiRgtW/q/VpbTba6+9puuuu06jR4/WiSeeqKefflq7du3Spk2bGu23efNm3X///XryySctqrTzAol6WfP48eO1ZcsWbd68Of445ZRTNG3atPjPycnJeuutt+Kv2bFjh3bt2qXCwsIm2xw+fLgGDhzY6DV+v1/r169v9jUAgMR23IAsFU0aqWfWfaXXtzY//J8IfD6fJCknJye+raamRj/+8Y/16KOPtviPbzsLhqMKRWKJeVlzVlaWxowZ0+iRkZGhvn37asyYMfJ6vbrxxhs1Z84cvf3229q0aZOuv/56FRYW6owzzoi3c/zxx2vFihWSFF/H5de//rVefvllbdmyRdOnT9fgwYN12WWXdenBAgDsY8Ioc+7i2s/3W1xJx8ViMd1+++0666yzNGbMmPj22bNn68wzz9SUKVMsrK5zAsH6Gx/aZEioy/t5Fi1aJKfTqSuuuEKhUEgXXXSRHnvssUb77NixI55IJemnP/2pqqur9ZOf/ESVlZU6++yz9dprr1k+TwYA0H0efftzSdLM7x9rcSUdN2PGDH3yySdau3ZtfNvLL7+s4uJiffzxxxZW1nkNNz60yzosna5i9erVjX5PTU3Vo48+qkcffbTZ1xiG0eh3h8Ohe++9V/fee29nywEAJAhvWrJcTof6ZbqtLqVDZs6cqVdffVXvvPOOhgwZEt9eXFyskpKSw66YveKKK3TOOecc9r1pR5FoTNv2mMuF2GVIyB6xCQDQ62SkJCk1OUlOZ2JdRWMYhm699VatWLFCq1ev1vDhwxv9fd68efrP//zPRttOOOEELVq0SJMnTz6SpXbYE+/u1G9f2y6HQ7YJlAQWAIAl1u88qKpQRFv3+BJqAbkZM2Zo6dKleumll5SVlRVfM8zr9SotLU0DBw5scqLt0KFDDws3drXXH9Swvul69obTlZtlj8DC3ZoBAJYYd5R5a5dFbyTWzW4XL14sn8+n888/X4MGDYo/XnjhBatL6zL+2rBys9wa2jfd6lLi6GEBAFji9gnHaUdZQAeq66wupV2+Ow+zu15jJX/QPkvyN6CHBQBgmeMGZOnDnQf1x3e/sLoUHMIfjNjm6qAGBBYAgGVmjR+hU4f10R/WEFjsxF8bts3VQQ0ILAAAyzidDlXWhHXWsX2tLgWHCNDDAgBAY30yUrSjLKBvKmutLgX1mMMCAMB3/PwHo7QvENKs//9jBcOJd/fmniYWM1QVss9dmhsQWAAAljphiFcLf1Sgf33j090rPrG6nF6vqi4iw5A8afYaErJXNQCAXumC4wfopnOP1uPvfKFZ40fYav2PnqpkX5UWrNyu1OQkffDFAQXropp94XGqre/loocFAIAmXHPGUQpFYnph4y6rS+kVPvjigN7Ytlfl/qD2BUIKhCL67WvbtXDVDknS97LTLK6wMXpYAAC2MMCTqu/n5+rdz/brrousrqbnCwQj8qS69MJNhY2219ZFVReJyZtODwsAAE0aMSBL//raJ38wbHUpPV4gGG5y2CctJcl2YUWihwUAYAPhaEwLV+3Q4+98octOGqwsN19P3a3KhmuttCRxKgUA9EjfVNbq1qUf6V9f+/SzH4zUjWcPl8PhsLqsHs+Oi8O1JHEqBQD0OG9u26s7//JPpScn6YWbCuN3cEb3C9hwrZWWEFgAAJb45ctb9fT7X2r88f11/5UnKjs9xeqSepVAMKz+WalWl9FmTLoFABxxhmHo2XVf6oazhuuP155CWLGAuZpt4vRbJE6lAIAew+FwKCs1WblZbuarWCQQjOj59bv0yR6/vGnJ8qYla9rpQ3XG0fa8ESWBBQBgCW9asny1XL5slf/5t5Ha+OVB+Wsj8tWG9ea2vcpOSyawAABwKDOw1FldRq910eiBumj0wPjvp/7mTfXNtO/QHHNYAACW8KS55A9GrC4DMu/QXFFdp76ZbqtLaRaBBQBgiUy3S1UEFlvwB8OKxAz1y6CHBQCARrJSkxVgCX5b2F9lDs3RwwIAwHdkul2qCtHDYgcHqkKSpBx6WAAAaMyTypCQXRysNntY+jHpFgCAxjJTXQoQWGxhf3WdXE6HPDZeqp/AAgCwRFZqsqrqIorFDKtL6fV8NXXypiXL6bTvIn4EFgCAJTLdLhmGVF1HL4vVquuiSncnWV1GiwgsAABLNNzHhom31qutiyojxd5ryRJYAACWyKqfL8E8FutVhyJKS6GHBQCAwzT0sBBYrFcTpocFAIAmfRtYWDzOajX0sAAA0LRMN3NY7CIQjMQDpF0RWAAAlshIccnhYEjIDny1YXnT7LsGi0RgAQBYxOl0KDOF1W7toLI2rOw0+65yKxFYAAAWykp1MYfFYoZh1PewMCQEAECTMlNdCjCHxVLBcEx1kZiy0+lhAQCgSVmpycxhsZiv1uzh8qYzhwUAgCZlupnDYrXKWvNOzUy6BQCgGVmpLgVCzGGxkq/G/O+fTWABAKBpWan0sFitsmFIiMACAEDTslKT5SewWKqhh4XAAgBAM/qkp+hAVcjqMno1X21YmW6XXEn2jgT2vugaANCj9c1IkT8YUSQas/0XZk/x4kdf663t5crNdCs3y62l63fZ/j5CEoEFAGChhvvXVIei8qYTWI6EZR/u1odfHtSI/pkqD4Tkqw3rtOE5VpfVKgILAMAymQ13bA6Fbb8OSE9RWVun684cpl9eOlqSFAxHleR0WFxV64izAADLpNcPRXy5v0a+mrCiMcPiinq+ipqwsg8Jh6nJSUpOgOG4dvWwLF68WIsXL9aXX34pSRo9erTuueceTZo0SZJUUlKiO++8U2vXrlUoFNLFF1+sRx55RAMGDGi2zWg0ql/+8pd67rnnVFZWpsGDB+u6667Tz372Mzkc9k98AICO89bfcO+aP62Pb8tISVJWarI8aS5lpSYrK9V8zk5LVm6WW0Nz0jU4O03pKUlyu5xyu5KUmmw+u5OdcrucfH80wzAMVdbUqY/Nl+FvSrsCy5AhQ7RgwQKNGDFChmHomWee0ZQpU/Txxx9r2LBhmjhxok488UQVFxdLkn7+859r8uTJ+uCDD+R0Np3efvvb32rx4sV65plnNHr0aG3cuFHXX3+9vF6vbrvtts4fIQDAto7tn6lVt5+r8kBQgWBEgWBYgWBE/mBE/tpwfNv+QEifl1ep3B/Ugeq6VttNcTmV6nLKnWyGmtTkJKWnmI+MFJfS6p/T3Q3bXcqof053H75PanKSHJIcDskhh5KcDmWluhIuHFXXRRWOGo16WBKFwzCMTvW/5eTkaOHChcrLy9OkSZNUUVEhj8cjSfL5fOrTp49ef/11TZgwocnXX3LJJRowYID+9Kc/xbddccUVSktL03PPPdfmOvx+v7xer3w+X/z9AQA9TyAY1l5/UMFwTKFIVKFwTMH651AkpmA42ug5FIkqGI6ppi6qmrqIqkNR1YbN529/j6o6FFEoEmtXLSlJznhPkCfVJU+a2SPkSU2WJ83c1tBb5ElNbvSzJy1ZGSlJRzTw7D5Yo3N+97aeveE0nXtc7hF735a09fu7w5Nuo9Goli9frurqahUWFqqkpEQOh0Nutzu+T2pqqpxOp9auXdtsYDnzzDP1+OOP69NPP9Vxxx2nf/7zn1q7dq0eeOCBFt8/FAopFPr22n2/39/RQwEAJJCs+i/+7hCNGaqpi9SHGzPE1Iajqq2LypA5pGJIikYNVYUi8gfD8Z4g82fz+ZvKoAK14fi2umjTQcjldCg7PVnetGRlp6coOy1Z3vRkZaelKDs9WX3Sk+Wt355dv92bnqwst0vODkyUbbjRYY8fEpKkLVu2qLCwUMFgUJmZmVqxYoVGjRql3NxcZWRkaO7cubrvvvtkGIbmzZunaDSq0tLSZtubN2+e/H6/jj/+eCUlJSkajeo3v/mNpk2b1mId8+fP169+9av2lg8AQLPMoZ6uDUSGYSgUiTUKNP7asPzBiHy1Yflq6lRRE1ZlTVi+2jrtOlCjf9X6VFkTVmVNnSJNTER2OsyVafukp9QHHDPweOPBpv73dHOfhsDTMJyWiENC7Q4s+fn52rx5s3w+n/7yl7/o2muv1Zo1azRq1CgtX75ct9xyix5++GE5nU5dffXVGjt2bLPzVyTpz3/+s55//nktXbpUo0eP1ubNm3X77bdr8ODBuvbaa5t9XVFRkebMmRP/3e/3Ky8vr72HAwBAt3I4HEpNNufB9M9q32sNw1BNXVSVtWFVVNfJV2sGm8rauvqAY4aaypqwvqms1bY9flXU/95cr44k9clIvB6WTs9hmTBhgo455hgtWbIkvm3//v1yuVzKzs7WwIEDdccdd+iuu+5q8vV5eXmaN2+eZsyYEd/261//Ws8995y2b9/e5jqYwwIAgMkwDAXDsXiwaei9qawJKys1WT8oGGR1iXHdPoelQSwWazSXRJL69esnSSouLlZ5ebkuvfTSZl9fU1NzWA9MUlKSYrH2TXwCAAAmh8OhtJQkpaWkaZA3zepyukS7AktRUZEmTZqkoUOHKhAIaOnSpVq9erVWrVolSXrqqac0cuRI5ebmat26dZo1a5Zmz56t/Pz8eBvjx4/X1KlTNXPmTEnS5MmT9Zvf/EZDhw7V6NGj9fHHH+uBBx7QDTfc0IWHCQAAElm7Akt5ebmmT5+u0tJSeb1eFRQUaNWqVbrwwgslSTt27FBRUZEOHjyoYcOG6e6779bs2bMbtVFSUqL9+/fHf3/kkUf085//XP/93/+t8vJyDR48WDfddJPuueeeLjg8AADQE3R6DotdMIcFAIDE09bvb/vfPAAAAPR6BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB7BBYAAGB77QosixcvVkFBgTwejzwejwoLC7Vy5cr430tKSjR16lTl5ubK4/Hoyiuv1N69e1tt95tvvtE111yjvn37Ki0tTSeccII2btzY/qMBAAA9UrsCy5AhQ7RgwQJt2rRJGzdu1AUXXKApU6Zo69atqq6u1sSJE+VwOFRcXKz33ntPdXV1mjx5smKxWLNtVlRU6KyzzlJycrJWrlypbdu26f7771efPn06fXAAAKBncBiGYXSmgZycHC1cuFB5eXmaNGmSKioq5PF4JEk+n099+vTR66+/rgkTJjT5+nnz5um9997Tu+++25ky5Pf75fV65fP54u8PAADsra3f3x2ewxKNRrVs2TJVV1ersLBQoVBIDodDbrc7vk9qaqqcTqfWrl3bbDsvv/yyTjnlFP3oRz9S//79dfLJJ+uJJ55o9f1DoZD8fn+jBwAA6JnaHVi2bNmizMxMud1u3XzzzVqxYoVGjRqlM844QxkZGZo7d65qampUXV2tO++8U9FoVKWlpc2298UXX2jx4sUaMWKEVq1apVtuuUW33XabnnnmmRbrmD9/vrxeb/yRl5fX3kMBAAAJot1DQnV1ddq1a5d8Pp/+8pe/6I9//KPWrFmjUaNG6fXXX9ctt9yinTt3yul06uqrr9a2bdt02mmnafHixU22l5KSolNOOUXvv/9+fNttt92mDRs2aN26dc3WEQqFFAqF4r/7/X7l5eUxJAQAQAJp65CQq70Np6Sk6Nhjj5UkjRs3Ths2bNBDDz2kJUuWaOLEiSopKdH+/fvlcrmUnZ2tgQMH6uijj262vUGDBmnUqFGNto0cOVJ//etfW6zD7XY3Gn4CAAA9V7sDy3fFYrFGPR2S1K9fP0lScXGxysvLdemllzb7+rPOOks7duxotO3TTz/VUUcd1dnSAABAD9GuwFJUVKRJkyZp6NChCgQCWrp0qVavXq1Vq1ZJkp566imNHDlSubm5WrdunWbNmqXZs2crPz8/3sb48eM1depUzZw5U5I0e/ZsnXnmmbrvvvt05ZVX6sMPP9Tjjz+uxx9/vAsPEwAAJLJ2BZby8nJNnz5dpaWl8nq9Kigo0KpVq3ThhRdKknbs2KGioiIdPHhQw4YN0913363Zs2c3aqNhyKjBqaeeqhUrVqioqEj33nuvhg8frgcffFDTpk3rgsMDAAA9QafXYbEL1mEBACDxdPs6LAAAAEcKgQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANheuwLL4sWLVVBQII/HI4/Ho8LCQq1cuTL+95KSEk2dOlW5ubnyeDy68sortXfv3ja3v2DBAjkcDt1+++3tKQsAAPRw7QosQ4YM0YIFC7Rp0yZt3LhRF1xwgaZMmaKtW7equrpaEydOlMPhUHFxsd577z3V1dVp8uTJisVirba9YcMGLVmyRAUFBR0+GAAA0DM5DMMwOtNATk6OFi5cqLy8PE2aNEkVFRXyeDySJJ/Ppz59+uj111/XhAkTmm2jqqpKY8eO1WOPPaZf//rXOumkk/Tggw+2qw6/3y+v1yufzxd/fwAAYG9t/f7u8ByWaDSqZcuWqbq6WoWFhQqFQnI4HHK73fF9UlNT5XQ6tXbt2hbbmjFjhn7wgx+0GGq+KxQKye/3N3oAAICeqd2BZcuWLcrMzJTb7dbNN9+sFStWaNSoUTrjjDOUkZGhuXPnqqamRtXV1brzzjsVjUZVWlrabHvLli3TRx99pPnz57erjvnz58vr9cYfeXl57T0UAACQINodWPLz87V582atX79et9xyi6699lpt27ZNubm5Wr58uV555RVlZmbK6/WqsrJSY8eOldPZ9Nvs3r1bs2bN0vPPP6/U1NR21VFUVCSfzxd/7N69u72HAgAAEkSn57BMmDBBxxxzjJYsWRLftn//frlcLmVnZ2vgwIG64447dNdddx322r/97W+aOnWqkpKS4tui0agcDoecTqdCoVCjv7WEOSwAACSetn5/uzr7RrFYTKFQqNG2fv36SZKKi4tVXl6uSy+9tMnXjh8/Xlu2bGm07frrr9fxxx+vuXPntjmsAACAnq1dgaWoqEiTJk3S0KFDFQgEtHTpUq1evVqrVq2SJD311FMaOXKkcnNztW7dOs2aNUuzZ89Wfn5+vI3x48dr6tSpmjlzprKysjRmzJhG75GRkaG+ffseth0AAPRe7Qos5eXlmj59ukpLS+X1elVQUKBVq1bpwgsvlCTt2LFDRUVFOnjwoIYNG6a7775bs2fPbtRGSUmJ9u/f33VHAAAAerxOz2GxC+awAACQeLp9HRYAAIAjhcACAABsj8ACAABsj8ACAABsj8ACAABsj8ACAABsj8ACAABsj8ACAABsj8ACAABsj8ACAABsj8ACAABsj8ACAABsj8ACAABsj8ACAABsj8ACAABsj8ACAABsj8ACAABsj8ACAABsz2V1AegChiHt2y6Fa6WMXCmjn5ScZnVVAAB0GQJLovvkRent+6QDnzXe7s2TBp8sfW+s+ZzWR3ImS0nJkjPpkJ+TzXCTnCY5HNYcAwAArSCwtMYwpPL/leqqpEhIioakSJ0UrZOcLvNLPylZSkr5NgQ0/N4QCBp+bmhPRief69upq5L+dos0tFC6eL6U2V+q3idV7ZPKt0nffCS983/N/VqTnCH1PVrKOUbqe6zU9xipX740cIzkcn+7X2CvVPpPqfagdPT5UtbALvtPDQBAcwgsrdn+d+mFaVZX0byUTOmHT0rpOU3/PRaVDu6U6gJSNCLFwlI0XP9c/3u4VqraKx0okQ58Lu3+UArsMV+flGKGM0nKHChVlTVuf/DJ0nGTpBETJDmkqnKzrapyKSVd6jPMfGQfJbkzu+k/AgCgpyOwtCbkN59veldKyTB7G1ypZu+KETO/zKN1ZgiIhs2fY4f8fOh2qX7YxdGGZ7VtP8/g5sOKZA7/9Du2/cddVy2Vb5e+2Sit/Km57eRp0qATzUdKlvT5m9KnK6V1v5dW33fIix1Sel+zjUjtt5szcqU+w78NMQ2PjFzJlWKGr+R0hqcAAIchsLSmYQim/8hvh3V6g5QMacg483H6TU3vc+JV5iNSJ5VuNsNc5gApvZ+U5DL/21XtlSq+PPzx5btSoLSZN3eY75+RKw0+yezFGTzWDEqpnq4/VgCA7RFYWlUfWMS/+JvlSpHyTjt8u8NhznHJGigNPePwv4drpYqvpNoKKRKUwjVSXY055yZcI/m+lvZsllb/VgpXm6/pO0Lqd5yUM9x8yCEFfVKwUqqtNPdJ9Uhur+TOqv85S3J76nt4jjLDEAAgoRBYWtPQw8IQRddLTpP6H9/6frGotP9Tac/HZoA58Lk5t6hyl/n3VK/5SMs2fw8FpKDfHM6LBA9vL3OAGXpy880AlDXQ3JZztJQ1oKuODgDQhQgsraKHxXLOJHNIrv9I6aQff7s9FpUczpbDZKTODC4hv3mFU+VX5uTi/TukL9+TPnr22/lFknRPheRkPUUAsBsCS2voYbEvZ1Lr+7hSJFc/czG9nKOlowob/90wzCGpR8aal3MTVgDAlvh/51YRWHo0h8O8yio53expqfjS6ooAAE0gsLSmoYcFPdv4X5hrx/zhXPNybgCArRBYWmWI+Su9wIlXSefeJYV8kv9rq6sBAHwHgaU1hsFwUG/x2Rvmei/HjLe6EgDAdxBYWhMNm8vTo2czDOnrD6URFxJQAcCGCCxt4eA/U49Wc1B6/odSzQFp0ElWVwMAaAKXNbeKSbc9WiwqvfAf5t2tf/CAdNzFVlcEAGgCgaVNGCLokar3Sy/+l/TVe9J1r0rDzra6IgBAMwgsreGy5p5p57tmWImGpWv+QlgBAJsjsLQFkzB7ju3/kN5/WNq1Thp2jnT545JnsNVVAQBawWzSVtHD0mN8sVpadrU5ifryJ6TpLxFWACBB0MPSJvSw9Ajv/1763inSdX+n1wwAEgw9LK1hDkvPsf9T6agzCSsAkIDoYWkLvuASm2GY9wny7ZZyhltdDQCgAwgsraKHJaEdKJGemiRV7ZXS+0ojp1hdEQCgAwgsbUIPS0Lyl0rLr5VCVebdmPMnSRl9ra4KANABBJbWMIclMVV8KT0z2VzJ9vp/SINPsroiAEAnMOm2LXpgB8vixYtVUFAgj8cjj8ejwsJCrVy5Mv73YDCoGTNmqG/fvsrMzNQVV1yhvXv3WlhxO71yuxk2b1hFWAGAHoDA0qqe2cMyZMgQLViwQJs2bdLGjRt1wQUXaMqUKdq6daskafbs2XrllVe0fPlyrVmzRnv27NHll19ucdXtUFUuBX1SLGJ1JQCALuAwjJ4x5uH3++X1euXz+eTxeLqu4fcekt69X5q3q+vatKmcnBwtXLhQP/zhD5Wbm6ulS5fqhz/8oSRp+/btGjlypNatW6czzjjD4krbwL9HevR06cxbpfN+anU1AIBmtPX7mx6W1hiGeuSY0CGi0aiWLVum6upqFRYWatOmTQqHw5owYUJ8n+OPP15Dhw7VunXrLKy0HTyDpaGF0lfvN94eKJNemiktv96c5wIASAjtCiytzXsoKSnR1KlTlZubK4/HoyuvvLLVeQ/z58/XqaeeqqysLPXv31+XXXaZduzY0bGjQbts2bJFmZmZcrvduvnmm7VixQqNGjVKZWVlSklJUXZ2dqP9BwwYoLKyMmuK7Yhjx0tfvit9+ITZU7ZyrvRYobRjpXmH5r/+F5OqASBBtCuwtDTvobq6WhMnTpTD4VBxcbHee+891dXVafLkyYrFYs22uWbNGs2YMUMffPCB3njjDYXDYU2cOFHV1dWdPriuYfTYhePy8/O1efNmrV+/XrfccouuvfZabdu2zeqyus7J/yH1Hyn9407pnf8rff6WNPISacZ6aeoS6esPpa0rrK4SANAGnZ7D0jDvIS8vT5MmTVJFRUV8DMrn86lPnz56/fXXGw0vtGTfvn3q37+/1qxZo3PPPbfNdXTbHJa1i8x/nc/9suvatKkJEybomGOO0VVXXaXx48eroqKiUS/LUUcdpdtvv12zZ8+2rsj2isWkSFBKST/8b0v/Xdr7iTT7kyNfFwBA0hGYw/LdeQ+hUEgOh0Nutzu+T2pqqpxOp9auXdvmdn0+nyQzCLUkFArJ7/c3enSLXjCHpUEsFlMoFNK4ceOUnJyst956K/63HTt2aNeuXSosLLSwwg5wOpsOK5J0zAWS/5sjWw8AoEPavXDcli1bVFhYqGAwqMzMzPi8h9zcXGVkZGju3Lm67777ZBiG5s2bp2g0qtLS0ja1HYvFdPvtt+uss87SmDFjWtx3/vz5+tWvftXe8lGvqKhIkyZN0tChQxUIBLR06VKtXr1aq1atktfr1Y033qg5c+YoJydHHo9Ht956qwoLCxPjCqG2MAzp05XS4JOtrgQA0Abt7mFpbt5Dbm6uli9frldeeUWZmZnyer2qrKzU2LFj5XS27W1mzJihTz75RMuWLWt136KiIvl8vvhj9+7d7T2UNuqZc1jKy8s1ffp05efna/z48dqwYYNWrVqlCy+8UJK0aNEiXXLJJbriiit07rnnauDAgXrxxRctrroLffCYVFIsFc6wuhIAQBt0eg5Lw7yHJUuWxLft379fLpdL2dnZGjhwoO644w7dddddLbYzc+ZMvfTSS3rnnXc0fHj776jbbXNY3r1fWveo9NMvuq5NWOvgTukPZ0sn/Vj6t4VWVwMAvVpbv787fS+hhnkPh+rXr58kqbi4WOXl5br00kubfb1hGLr11lu1YsUKrV69ukNhpVv1ojksPd5r/yPt+chcfyWjn3TBz62uCADQRu0KLC3Ne5Ckp556SiNHjlRubq7WrVunWbNmafbs2crPz4+3MX78eE2dOlUzZ86UZA4DLV26VC+99JKysrLi63x4vV6lpaV11XEC0kfPSHVV0nGTpO//j5TahT1xAIBu1a7A0jDvobS0VF6vVwUFBY3mPezYsUNFRUU6ePCghg0bprvvvvuwS2BLSkq0f//++O+LFy+WJJ1//vmN9nvqqad03XXXdeCQulrPnMPS69TVmGHlnDuk8fdYXQ0AoJ24l1Br3lkorV8i3fV517WJI6/moPS7+uHGX/qsrQUAEMe9hLqKITGHpQf48l3zeeqSlvcDANgSgQW9Q3KG+dz3WGvrAAB0CIGlVT1ixAzDzjKf32D+CgAkIgJLWzDpNvG9/RvzeXjb708FALAPAktresacZHz6ujTueun8eVZXAgDoAAJLm9DDkvAqvpT6j7S6CgBABxFYWkUPS8IzDClaJ7ncre8LALAlAktbdHYOC8NK1opFJBmSM9nqSgAAHdTpewn1eB0NG/t2SCvnSl+9L0VD0oAx0nEXS6fcIHm/17U1omW1leZzWraVVQAAOoEeljZpZw9LSbH0+Pcl/zfShF9I379byj1e+vAJ6aEC6eXbpFBV95SKw1XvM58zcq2tAwDQYfSwdLVvPpKWXSMddaZ05TNSSsa3fwsFpE1PS6sXSN9skn78guQdYlmpvUY8sPSztg4AQIfRw9Kqdtz88OAX0tIrzatRvhtWJMmdJZ15q3TjG1LQL/1/l5v3uEH3oocFABIegaWrxGLSX/9LcnukH//58LByqAGjpP9YYX6RLr+OSbndrXqflOSWUjKtrgQA0EEEltYYhto0h+Wjp6VvNkqXPiJl9G19/37HSlc8Ie1cI21e2tkq0ZJAmZQ1kBWLASCBEVi6QmCv9MYvpZOv+faeNW1x7ASp4N+lVf8jVZV3W3m9XqBU8gy2ugoAQCcQWFrVhjksq4qkJJd04f9pf/MX3Sc5nNJrRR0rz45qK6Wd70olb9sjiPn3mD0sAICExVVCnfXZm9Inf5WmLpHSc9r/+oy+0sXzpRU3SSf+uzTiwq6v8Uip+Er6x53SZ28ovkKwI0kaNUWa+Gvr1p8JlEkDC6x5bwBAl6CHpTUtTYitOSj9fY40/Dyp4KqOv0fBVdLR35denS3VVXe8HSt99b60+Cxp7zZp8oPSjA+l2z6WJv1W2vWBtOQcqWyLNbUFSiXPIGveGwDQJQgsbXLIkJBhSKX/kop/LT0yzgwYlyzq3IROh8Nso6pceuf/dr7cI61yt7RsmjT4JOm/10njrpNy86Wco6XT/ku6ea3k+Z609KojP0QUCkh1VVIWgQUAEhmBpVX1PSy+r815Jg8VmL0F6x+Xxlwu3fSO1PeYzr9NznDpnDnS+49I+z/rfHtHSixqXpqdkild+ayU6jl8n4y+5qXe4VrpzV8d2fr8peYzgQUAEhqBpS18u6QnJ0n/+rN07IXmGip3fS794P6unZdx1iyzvX/clThrs3zyonk59xVPtDyHxzNIuuBuafPz0p7NR6w8BfaYz0y6BYCERmBpTcPS+dl50n++KV3ygHTMBZIrpevfKzlNuvi30hdvS/9c1vXtd7W6GmnNb6URF0lDz2h9/7HXmfdUKu7A1VQdFSgzn7msGQASGlcJteaUG8wvWucRynb5F5trs7w0Q/pyrTR6qjToRMmIShn9u7eO/31F2v4PKVwjDT/HPO6kZv4nEvRJS//dvMHjj55qW/tJLunMmdJLM80htiNxHyX/Hik12wyDAICERWBpiyMVVhpMeVQaeIK0/g/S5ue+3Z41SDrhR9LZszt2CXVLPnzCvCR54AnmF/zf75Q2PCn928LDF8Mr+0T62y1S5S5p+svma9rquEmSDPPKoRN+2JVH0LRAKfNXAKAHILDYUUNPROEMad8O6cBnkhzSV+9JG5+UPnpGmvKYNPKSrnm/3R9KK+dKp98iTVpgbvvmI3MuzdP/Jo2+XPreOPPmjmX/kr7eIGUfJV3/D2nA6Pa9V6rHvK9PoLRram8NlzQDQI9AYLEzh0Pqf7z5kMyAcvYc6dXbzStz/mOFOXTTGdGIuf7LoAJzcbcG3xtr3lV68/PS2kXSjn9IOceYtZx2kzT6Mikpuf3vV/GVFA0duYXc/KXmvBkAQEIjsCSazFzpR09Lz10hvXCNORG434iOtRWNSK/cJpX/r9nOd+erOJ3S2P8wH12l5oD53NVDWs0JlEpHn39k3gsA0G24SigRJSWba55kDpCe/5FUfaD9bVR8JS39kfSvF6SpfzB7VI6EhjVrjsSlzbGYeZUQQ0IAkPDoYUlUadnStD9LT4yXnpksTX/J7H1pTjRszlX57HXzUb7NnFx7zYvS0ecdqaqljH6SK00K+bv/var3mVdXZXFJMwAkOgJLIuszTLru72Zg+eN46cxbzfsSHbrabCwmffCoueR/sFLKyJWOnSCd91PpmPFNr0zb3bLzzOX8u1vDxF4WjQOAhEdgSXT9jzd7Wt6eL638qfT6z83Vct0eyZUqVew0v7hP/S/ppB9Lg0468pdpf1dyuhSp7f73aQgsLBoHAAmPwNITDD7ZDC3+PeZS+VVlUtAvRYJS3qnSyCnSkHFWV/ktZ5J5D6Lu5t8jOZLMXiUAQEIjsPQknsHm+i12lznAXCG3uwXKzPdyJnX/ewEAuhVXCeHI6z9K2rut+98nsIcrhACghyCw4MgbMMoctqo52L3v42dZfgDoKQgsOPK+Vz+fZvl13fs+gTICCwD0EAQWHHl9hpnPO9dIL3ThKrrfxZAQAPQYBBZYY+Ym8/l/XzZvvBjs4oXkwrVSbQU9LADQQ3CVEKzR71jp5/ulDxZLq+dLW1dIoy6TktMkh9O8C3TWQHOF3uyhUs7R5s0g2ypQZj4TWACgRyCwwDpJydJZt0mjp0prH5A+f8PsFUlym5NyD+X2mneUHnyylHeadPT3JXdm823HV7klsABAT0BggfWy86RLFjXeVlVu3qAxo590oEQq/di8YeInL0rvPyyleqVTbpBOu6npeSrxVW4JLADQExBYYE+Z/c2HJOUMl0ZM+PZvB3dKG/4offhH6f3fSyf8UDr3rm/vBC2ZlzQnZ5i3KAAAJDwm3SLx5AyXLvqNNGerNOEX0s53pD+cLW34k2QY5j6BUnMOTHvmvQAAbIvAgsSV6jXvUD1zg3mX6r/PkZZeJdVWmoGFmx4CQI9BYEHiS8mQJj8oXf2CtHu99PQlUuk/mXALAD0IgQU9R/7F0vUrpep90oHPpVTmrwBAT0FgQc8yYJR07cvmz7nHW1sLAKDLcJUQep7cfGnul+baLQCAHoHAgp4prY/VFQAAulC7hoQWL16sgoICeTweeTweFRYWauXKlfG/l5SUaOrUqcrNzZXH49GVV16pvXv3ttruo48+qmHDhik1NVWnn366Pvzww/YfCQAA6LHaFViGDBmiBQsWaNOmTdq4caMuuOACTZkyRVu3blV1dbUmTpwoh8Oh4uJivffee6qrq9PkyZMVi8WabfOFF17QnDlz9Itf/EIfffSRTjzxRF100UUqLy/v9MEBAICewWEYDSttdUxOTo4WLlyovLw8TZo0SRUVFfJ4zKszfD6f+vTpo9dff10TJkxo8vWnn366Tj31VP3+97+XJMViMeXl5enWW2/VvHnz2lyH3++X1+uVz+eLvz8AALC3tn5/d/gqoWg0qmXLlqm6ulqFhYUKhUJyOBxyu93xfVJTU+V0OrV27dom26irq9OmTZsahRmn06kJEyZo3bp1Lb5/KBSS3+9v9AAAAD1TuwPLli1blJmZKbfbrZtvvlkrVqzQqFGjdMYZZygjI0Nz585VTU2Nqqurdeeddyoajaq0tLTJtvbv369oNKoBAwY02j5gwACVlZU1+ZoG8+fPl9frjT/y8vLaeygAACBBtDuw5Ofna/PmzVq/fr1uueUWXXvttdq2bZtyc3O1fPlyvfLKK8rMzJTX61VlZaXGjh0rp7Prl3spKiqSz+eLP3bv3t3l7wEAAOyh3Zc1p6Sk6Nhjj5UkjRs3Ths2bNBDDz2kJUuWaOLEiSopKdH+/fvlcrmUnZ2tgQMH6uijj26yrX79+ikpKemwK4n27t2rgQMHtliH2+1uNPwEAAB6rk53fcRiMYVCoUbb+vXrp+zsbBUXF6u8vFyXXnppk69NSUnRuHHj9NZbbzVq76233lJhYWFnSwMAAD1Eu3pYioqKNGnSJA0dOlSBQEBLly7V6tWrtWrVKknSU089pZEjRyo3N1fr1q3TrFmzNHv2bOXn58fbGD9+vKZOnaqZM2dKkubMmaNrr71Wp5xyik477TQ9+OCDqq6u1vXXX9+FhwkAABJZuwJLeXm5pk+frtLSUnm9XhUUFGjVqlW68MILJUk7duxQUVGRDh48qGHDhunuu+/W7NmzG7XRMGTU4KqrrtK+fft0zz33qKysTCeddJJee+21wybiAgCA3qvT67DYBeuwAACQeLp9HRYAAIAjhcACAABsr8fcrblhZIsVbwEASBwN39utzVDpMYElEAhIEiveAgCQgAKBgLxeb7N/7zGTbmOxmPbs2aOsrCw5HA6ry+nx/H6/8vLytHv3biY5JxDOW+LhnCUmzlvbGYahQCCgwYMHt7gyfo/pYXE6nRoyZIjVZfQ6Ho+HD2MC4rwlHs5ZYuK8tU1LPSsNmHQLAABsj8ACAABsj8CCDnG73frFL37BDSgTDOct8XDOEhPnrev1mEm3AACg56KHBQAA2B6BBQAA2B6BBQAA2B6BBQAA2B6BBc369NNPNWXKFPXr108ej0dnn3223n777Sb3PXDggIYMGSKHw6HKysoW2x02bJgcDkejx4IFC7rhCHqf7jpnBw8e1LRp0+TxeJSdna0bb7xRVVVV3XAEvVNr5+3AgQO6+OKLNXjwYLndbuXl5WnmzJmt3juNz1r36a5zxmeteQQWNOuSSy5RJBJRcXGxNm3apBNPPFGXXHKJysrKDtv3xhtvVEFBQZvbvvfee1VaWhp/3HrrrV1Zeq/VXeds2rRp2rp1q9544w29+uqreuedd/STn/ykq8vvtVo7b06nU1OmTNHLL7+sTz/9VE8//bTefPNN3Xzzza22zWete3TXOeOz1gIDaMK+ffsMScY777wT3+b3+w1JxhtvvNFo38cee8w477zzjLfeesuQZFRUVLTY9lFHHWUsWrSoG6ru3brrnG3bts2QZGzYsCG+beXKlYbD4TC++eabLj+O3qY95+1QDz30kDFkyJAW2+az1j2665zxWWsZPSxoUt++fZWfn69nn31W1dXVikQiWrJkifr3769x48bF99u2bZvuvfdePfvssy3etOq7FixYoL59++rkk0/WwoULFYlEuuMwepXuOmfr1q1Tdna2TjnllPi2CRMmyOl0av369d1yLL1JW8/bofbs2aMXX3xR5513Xqvt81nret11zvistazH3PwQXcvhcOjNN9/UZZddpqysLDmdTvXv31+vvfaa+vTpI0kKhUK6+uqrtXDhQg0dOlRffPFFm9q+7bbbNHbsWOXk5Oj9999XUVGRSktL9cADD3TnIfV43XXOysrK1L9//0bbXC6XcnJymhxqQvu05bw1uPrqq/XSSy+ptrZWkydP1h//+McW2+az1j2665zxWWsZPSy9zLx58w6bhPfdx/bt22UYhmbMmKH+/fvr3Xff1YcffqjLLrtMkydPVmlpqSSpqKhII0eO1DXXXNOuGubMmaPzzz9fBQUFuvnmm3X//ffrkUceUSgU6o5DTnh2OGdov648bw0WLVqkjz76SC+99JJKSko0Z86cFmvgs9Y+djhnaB5L8/cy+/bt04EDB1rc5+ijj9a7776riRMnqqKiotGt0UeMGKEbb7xR8+bN00knnaQtW7bI4XBIkgzDUCwWU1JSku6++2796le/alNNW7du1ZgxY7R9+3bl5+d3/OB6KKvP2ZNPPqk77rhDFRUV8W2RSESpqalavny5pk6d2kVH2rN05Xlrytq1a3XOOedoz549GjRoUJtq4rPWMqvPGZ+1ljEk1Mvk5uYqNze31f1qamok6bA5Dk6nU7FYTJL017/+VbW1tfG/bdiwQTfccIPeffddHXPMMW2uafPmzfEuVRzO6nNWWFioyspKbdq0KT4+X1xcrFgsptNPP71Dx9QbdOV5a0rD39rTW8JnrWVWnzM+a62wbr4v7Gzfvn1G3759jcsvv9zYvHmzsWPHDuPOO+80kpOTjc2bNzf5mrfffvuwK07Wr19v5OfnG19//bVhGIbx/vvvG4sWLTI2b95slJSUGM8995yRm5trTJ8+/UgcVo/WXefMMAzj4osvNk4++WRj/fr1xtq1a40RI0YYV199dXcfUq/QlvP297//3XjyySeNLVu2GDt37jReffVVY+TIkcZZZ50Vb4fP2pHTXefMMPistYTAgmZt2LDBmDhxopGTk2NkZWUZZ5xxhvGPf/yj2f2b+vJr2LZz507DMAxj06ZNxumnn254vV4jNTXVGDlypHHfffcZwWCwm4+md+iOc2YYhnHgwAHj6quvNjIzMw2Px2Ncf/31RiAQ6MYj6V1aO2/FxcVGYWFh/HMzYsQIY+7cuXzWLNQd58ww+Ky1hDksAADA9rhKCAAA2B6BBQAA2B6BBQAA2B6BBQAA2B6BBQAA2B6BBQAA2B6BBQAA2B6BBQAA2B6BBQAA2B6BBQAA2B6BBQAA2B6BBQAA2N7/A48JIvVRWcUyAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "We appear to have some populated islands.  Separate out the main state geom in next block.\n",
      "we will scale longitudinal distance by 0.77072\n"
     ]
    }
   ],
   "source": [
    "print(\"I will now preserve the original county unit lists and geoms, then rebuild as needed\")\n",
    "trueCountyTractList = [list() for c in range(nCounties)]\n",
    "trueCountyGeom = [countyGeom[c] for c in range(nCounties)]\n",
    "for c in liveCountyList: #range(nCounties):\n",
    "    trueCountyTractList[c] = countyTractList[c].copy()\n",
    "    if isAlteredCounty[c]:\n",
    "        print(\"removing coastal units from countyNo\",c)\n",
    "        countyTractList[c] = list()\n",
    "        countyGeom[c] = dummyPoly\n",
    "        for t in trueCountyTractList[c]:\n",
    "            if t not in skipList:\n",
    "                countyTractList[c].append(t)\n",
    "                if countyGeom[c] == dummyPoly:\n",
    "                    countyGeom[c] = tractGeom[t]\n",
    "                else:\n",
    "                    countyGeom[c] = countyGeom[c].union(tractGeom[t])\n",
    "        if countyGeom[c] == dummyPoly:\n",
    "            print(\"Uh oh! county\",c,\"didn't have any usable tracts\")\n",
    "MAP = countyGeom[liveCountyList[0]] # countyGeom[0]\n",
    "for c in liveCountyList: #range(nCounties):\n",
    "    plotPoly(countyGeom[c])\n",
    "    plotCenter(c,countyGeom[c])\n",
    "    MAP = MAP.union(countyGeom[c])\n",
    "origPopMAP = MAP   #origPopMAP is the map after eliminating coastal unpopulated tracts, with original islands\n",
    "print(\"Here is the revised state county map after eliminating coastal tracts\")\n",
    "plt.show()\n",
    "if MAP.geom_type == dummyPoly.geom_type:\n",
    "    print(\"Excellent!  We have no populated islands.  SKIP the below code block.\")\n",
    "else:\n",
    "    print(\"We appear to have some populated islands.  Separate out the main state geom in next block.\")\n",
    "LAT = MAP.centroid.y\n",
    "xScale = (1. - 1.089* abs(LAT/90)**1.9)\n",
    "print(\"we will scale longitudinal distance by\",r5(xScale))\n"
   ]
  },
  {
   "cell_type": "raw",
   "id": "37c0d87d-60be-4e9a-8699-b617e542e671",
   "metadata": {
    "tags": []
   },
   "source": [
    "#RUN THIS ONLY IF WE FOUND POPULATED ISLANDS  #skip for Hamilton-Franklin; not relevant\n",
    "nSubGeoms = len(MAP.geoms)\n",
    "subGeoms = [MAP.geoms[n] for n in range(nSubGeoms)]\n",
    "subAreas = [subGeoms[n].area for n in range(nSubGeoms)]\n",
    "mainSubGeomNo = subAreas.index(np.max(subAreas))\n",
    "mainGeom = subGeoms[mainSubGeomNo]\n",
    "nonMainGeom = dummyPoly\n",
    "for geo in subGeoms:  #the \"nonMainGeom is all pieces of the state not in the biggest piece\n",
    "    if geo != mainGeom:\n",
    "        if nonMainGeom == dummyPoly:\n",
    "            nonMainGeom = geo\n",
    "        else:\n",
    "            nonMainGeom = nonMainGeom.union(geo)\n",
    "        \n",
    "print(\"Lets first identify which county each island belongs to.  Then we'll move the island to the closest county mainland\")\n",
    "hasIsland, isIsland = [False for c in range(nCounties)], [False for c in range(nCounties)]\n",
    "isIsland =  [False for t in range(nTracts)]\n",
    "islandXshift, islandYshift = [0. for t in range(nTracts)], [0. for t in range(nTracts)]\n",
    "islandList = list()\n",
    "for c in range(nCounties):\n",
    "    if countyGeom[c].intersects(nonMainGeom):  #this county contains an island.  Find all its island tracts\n",
    "        hasIsland[c] = True\n",
    "        if countyGeom[c].disjoint(mainGeom):  #need to connect the whole county\n",
    "            print(\"county\",c,\"is completely disconnected from mainland.  Move it to adjoin mainland\")\n",
    "            isIsland[c] = True\n",
    "            countyDist = [999999. for cc in range(nCounties)]  #default, to avoid picking island counties as closest to this one\n",
    "            for cc in range(nCounties):\n",
    "                if countyGeom[cc].intersects(mainGeom):\n",
    "                    countyDist[cc] = countyGeom[c].distance(countyGeom[cc].intersection(mainGeom) )\n",
    "            closestCounty = countyDist.index(np.min(countyDist))\n",
    "            p1, p2 = nearest_points(countyGeom[closestCounty],countyGeom[c])\n",
    "            for t in countyTractList[c]:\n",
    "                islandXshift[t], islandYshift[t]  = p1.x - p2.x , p1.y - p2.y\n",
    "            for t in countyTractList[c]:\n",
    "                plotPoly(tractGeom[t])\n",
    "                plotCenter(t,tractGeom[t])\n",
    "                plt.arrow(tractCP[t].x, tractCP[t].y,islandXshift[t], islandYshift[t])\n",
    "                tractGeom[t] = translate(tractGeom[t], xoff=islandXshift[t], yoff=islandYshift[t])                   \n",
    "                tractCP[t] = tractGeom[t].centroid\n",
    "                tractCPx[t], tractCPy[t] = tractCP[t].x, tractCP[t].y\n",
    "                plotPoly(tractGeom[t],0.2)\n",
    "        else: #move only the county's island tracts to connect with main geom\n",
    "            mainCountyGeom = countyGeom[c].intersection(mainGeom)\n",
    "            plotPoly(mainCountyGeom)\n",
    "            plotCenter(c,mainCountyGeom)\n",
    "            for t in countyTractList[c]:\n",
    "                if tractGeom[t].intersects(nonMainGeom) and t not in skipList:\n",
    "                    if tractGeom[t].intersects(mainCountyGeom):\n",
    "                        print(\"unit\",t,\"has island pieces.  We will reduce the tract to its main state component\")\n",
    "                        plotPoly(tractGeom[t],0.2)\n",
    "                        tractGeom[t] = tractGeom[t].intersection(mainCountyGeom)\n",
    "                        tractCP[t] = tractGeom[t].centroid\n",
    "                        tractCPx[t], tractCPy[t] = tractCP[t].x, tractCP[t].y\n",
    "                        plotPoly(tractGeom[t])\n",
    "                        plotCenter(t,tractGeom[t])\n",
    "                    else:    \n",
    "                        isIsland[t] = True\n",
    "                        print(\"unit\",t,\"is a true island.  We will move it to adjoin the mainland in same county.\")\n",
    "                        islandList.append(t)\n",
    "                        if tractGeom[t].geom_type != dummyPoly.geom_type :  #island tract is multiple geoms.  collapse to its largest isle\n",
    "                            isleGeos = [geo for geo in tractGeom[t].geoms]\n",
    "                            isleAreas = [geo.area for geo in isleGeos]\n",
    "                            biggestIsleNo = isleAreas.index(np.max(isleAreas))\n",
    "                            tractGeom[t] = isleGeos[biggestIsleNo]\n",
    "                            tractCP[t] = tractGeom[t].centroid\n",
    "                        p1, p2 = nearest_points(mainCountyGeom, tractGeom[t])\n",
    "                        islandXshift[t], islandYshift[t]  = p1.x - p2.x , p1.y - p2.y\n",
    "                        plotPoly(tractGeom[t])\n",
    "                        plotCenter(t,tractGeom[t])\n",
    "                        plt.arrow(tractCP[t].x, tractCP[t].y,islandXshift[t], islandYshift[t])\n",
    "                        tractGeom[t] = translate(tractGeom[t], xoff=islandXshift[t], yoff=islandYshift[t])                   \n",
    "                        tractCP[t] = tractGeom[t].centroid\n",
    "                        tractCPx[t], tractCPy[t] = tractCP[t].x, tractCP[t].y\n",
    "                        plotPoly(tractGeom[t],0.2)\n",
    "        plt.show()"
   ]
  },
  {
   "cell_type": "raw",
   "id": "7fbaf10b-986b-49ba-816d-869974dda2af",
   "metadata": {
    "tags": []
   },
   "source": [
    "#continuing with island triage - RUN ONLY WITH ISLANDS\n",
    "print(\"If you like my proposed translations, let's rebuild the MAP with the adjusted county geoms\")\n",
    "print(\"This would need adjustment for multi-county islands like Michigan UP\")\n",
    "for c in range(nCounties):\n",
    "    if hasIsland[c] :  #rebuild the county geom with the translated islands\n",
    "        countyGeom[c] = dummyPoly\n",
    "        for t in countyTractList[c]:\n",
    "            if t not in skipList:\n",
    "                if countyGeom[c] == dummyPoly:\n",
    "                    countyGeom[c] = tractGeom[t]\n",
    "                else:\n",
    "                    countyGeom[c] = countyGeom[c].union(tractGeom[t])\n",
    "MAP = countyGeom[0]\n",
    "plotPoly(countyGeom[0])\n",
    "for c in range(1,nCounties):\n",
    "    MAP = MAP.union(countyGeom[c])\n",
    "    plotPoly(countyGeom[c])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "4aebe4ee-ee7b-4bf3-8413-f315556d453e",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "computing all county centerpoints, then plot them\n"
     ]
    },
    {
     "data": {
      "image/png": "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eP7556HT6TB9+nQMGzaszvErAPD3v/8db731FtatW4eBAwciJycHCxYsQLdu3TBr1qw6t8vMzMSiRYuq/3a73UhJSWnq4RAREbUpQRBgEKvGwVidpoY3+BFFURCQQpC8QfgrA/B7A5AqA/C7KiG5K34UdGRUlkkoyZfglyrhl+ru1QEAsy3yAkuLx7BMmDABvXv3xurVq6uXlZSUwGAwIDo6GklJSXjggQfwm9/8ptbtU1JSsHTpUsydO7d62eOPP461a9fi+PHjja6DY1iIiIiqKIqCYCAMyROA3xM8/zMAyV0J0WxAnzGpapdYrc3HsFwQDodrjCUBgPj4eABAVlYWiouLcdNNN9W5vdfrvagHRq/XIxzW/jTBREREWiQIAoyiHkZRD1vMj99JVKukFmtSYMnMzMSkSZOQmpqKiooKrFu3Djt37sTWrVsBAGvWrEH//v2RkJCAvXv3Yv78+Vi4cCHS0tKq2xg/fjymTp2KefPmAQAmT56M3//+90hNTcXAgQNx+PBhPP3007j77rtb8TCJiIgokjUpsBQXF2PmzJkoKCiA0+lEeno6tm7dimuvvRYAcOLECWRmZqK0tBQ9evTAsmXLsHDhwhpt5ObmoqSkpPrvF154Ab/97W/x61//GsXFxejWrRv+93//Fw8//HArHB4RERF1BC0ew6IVHMNCREQUeRr7/a39hwcQERFRp8fAQkRERJrHwEJERESax8BCREREmsfAQkRERJrHwEJERESax8BCREREmsfAQkRERJrHwEJERESax8BCREREmsfAQkRERJrHwEJERESax8BCREREmsfAQkRERJrHwEJERESax8BCREREmsfAQkRERJrHwEJERESax8BCREREmsfAQkRERJrHwEJERESax8BCREREmsfAQkRERJrHwEJERESax8BCREREmsfAQkRERJrHwEJERESax8BCREREmsfAQkRERJrHwEJERESax8BCREREmsfAQkRERJrHwEJERESax8BCREREmsfAQkRERJrHwEJERESax8BCREREmsfAQkRERJrHwEJERESax8BCREREmsfAQkRERJrHwEJERESax8BCREREmsfAQkRERJrHwEJERESax8BCREREmsfAQkRERJrHwEJERESax8BCREREmtekwLJq1Sqkp6fD4XDA4XAgIyMDW7ZsqX4/NzcXU6dO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m266qdZtRVHE8OHDsWPHjhrt7dixAxkZGS0tjYiIiDqIJvWwZGZmYtKkSUhNTUVFRQXWrVuHnTt3YuvWrQCANWvWoH///khISMDevXsxf/58LFy4EGlpP0yRPn78eEydOhXz5s0DACxatAizZs3CiBEjMGrUKDz77LPweDy46667WvEwiYiIKJI1KbAUFxdj5syZKCgogNPpRHp6OrZu3Yprr70WAHDixAlkZmaitLQUPXr0wLJly7Bw4cIabVy4ZHTB7bffjrNnz+Lhhx9GYWEhhgwZgg8++OCigbhERETUebV4Hhat4DwsREREkafN52EhIiIiai8MLERERKR5HeZpzReubHHGWyIioshx4Xu7oREqHSawVFRUAABnvCUiIopAFRUVcDqddb7fYQbdhsNh5Ofnw263QxAEtcvp8NxuN1JSUpCXl8dBzhGE5y3y8JxFJp63xlMUBRUVFejWrVu9M+N3mB4WnU6H5ORktcvodBwOBz+MEYjnLfLwnEUmnrfGqa9n5QIOuiUiIiLNY2AhIiIizWNgoWYxmUx45JFH+ADKCMPzFnl4ziITz1vr6zCDbomIiKjjYg8LERERaR4DCxEREWkeAwsRERFpHgMLERERaR4DC9Xpq6++wpQpUxAfHw+Hw4ErrrgCH330Ua3rnjt3DsnJyRAEAeXl5fW226NHDwiCUOO1YsWKNjiCzqetzllpaSlmzJgBh8OB6Oho3HPPPaisrGyDI+icGjpv586dw/XXX49u3brBZDIhJSUF8+bNa/DZafystZ22Omf8rNWNgYXqdOONNyIYDCIrKwvZ2dkYPHgwbrzxRhQWFl607j333IP09PRGt/3YY4+hoKCg+nXfffe1ZumdVludsxkzZuDo0aPYvn073n//fXz88ce49957W7v8Tquh86bT6TBlyhRs2rQJX331Ff7yl7/gww8/xOzZsxtsm5+1ttFW54yftXooRLU4e/asAkD5+OOPq5e53W4FgLJ9+/Ya67700kvK1VdfrezYsUMBoJSVldXbdvfu3ZVnnnmmDaru3NrqnB07dkwBoBw8eLB62ZYtWxRBEJQzZ860+nF0Nk05bz/23HPPKcnJyfW2zc9a22irc8bPWv3Yw0K1iouLQ1paGt588014PB4Eg0GsXr0aiYmJGD58ePV6x44dw2OPPYY333yz3odW/bcVK1YgLi4OQ4cOxcqVKxEMBtviMDqVtjpne/fuRXR0NEaMGFG9bMKECdDpdNi/f3+bHEtn0tjz9mP5+fn45z//iauvvrrB9vlZa31tdc74Watfh3n4IbUuQRDw4Ycf4uabb4bdbodOp0NiYiI++OADxMTEAAAkScL06dOxcuVKpKam4ttvv21U2/fffz+GDRuG2NhYfPrpp8jMzERBQQGefvrptjykDq+tzllhYSESExNrLDMYDIiNja31UhM1TWPO2wXTp0/He++9B5/Ph8mTJ+O1116rt21+1tpGW50zftbqxx6WTmbp0qUXDcL779fx48ehKArmzp2LxMREfPLJJzhw4ABuvvlmTJ48GQUFBQCAzMxM9O/fH3feeWeTali0aBGuueYapKenY/bs2XjqqafwwgsvQJKktjjkiKeFc0ZN15rn7YJnnnkGn332Gd577z3k5uZi0aJF9dbAz1rTaOGcUd04NX8nc/bsWZw7d67edXr16oVPPvkEEydORFlZWY1Ho/ft2xf33HMPli5diiFDhuDIkSMQBAEAoCgKwuEw9Ho9li1bhkcffbRRNR09ehSDBg3C8ePHkZaW1vyD66DUPmd//vOf8cADD6CsrKx6WTAYhNlsxoYNGzB16tRWOtKOpTXPW212796NK6+8Evn5+ejatWujauJnrX5qnzN+1urHS0KdTEJCAhISEhpcz+v1AsBFYxx0Oh3C4TAA4B//+Ad8Pl/1ewcPHsTdd9+NTz75BL179250TTk5OdVdqnQxtc9ZRkYGysvLkZ2dXX19PisrC+FwGKNHj27WMXUGrXneanPhvab0lvCzVj+1zxk/aw1Qb7wvadnZs2eVuLg45ZZbblFycnKUEydOKIsXL1aMRqOSk5NT6zYfffTRRXec7N+/X0lLS1NOnz6tKIqifPrpp8ozzzyj5OTkKLm5ucratWuVhIQEZebMme1xWB1aW50zRVGU66+/Xhk6dKiyf/9+Zffu3Urfvn2V6dOnt/UhdQqNOW//+te/lD//+c/KkSNHlJMnTyrvv/++0r9/f2Xs2LHV7fCz1n7a6pwpCj9r9WFgoTodPHhQmThxohIbG6vY7XZlzJgxyr///e8616/ty+/CspMnTyqKoijZ2dnK6NGjFafTqZjNZqV///7KE088ofj9/jY+ms6hLc6ZoijKuXPnlOnTpys2m01xOBzKXXfdpVRUVLThkXQuDZ23rKwsJSMjo/pz07dvX2XJkiX8rKmoLc6ZovCzVh+OYSEiIiLN411CREREpHkMLERERKR5DCxERESkeQwsREREpHkMLERERKR5DCxERESkeQwsREREpHkMLERERKR5DCxERESkeQwsREREpHkMLERERKR5DCxERESkef8faUOVVDsKZRMAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(\"computing all county centerpoints, then plot them\")\n",
    "countyCP  = [Point(0,0) for c in range(nCounties)]\n",
    "cutCountyList = list()\n",
    "for c in liveCountyList: #range(nCounties):\n",
    "    cTL = countyTractList[c]\n",
    "    countyCP[c] = (getHDcp( [tractCP[v] for v in cTL], [tractPop[v] for v in cTL], [i for i in range(len(cTL) ) ] ) )\n",
    "    if countyCP[c].disjoint(countyGeom[c]):  #possible with weird-shaped county\n",
    "        countyCP[c] = nearest_points(countyGeom[c],countyCP[c])[0]\n",
    "    plotPoly(countyCP[c].buffer(0.03))\n",
    "    plotPoly(countyGeom[c],0.5)\n",
    "plotPoly(MAP)\n",
    "plt.show()   \n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "207f3a55-e361-4777-ae46-41fe3d54a4b8",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "This code block reads in a csv with whole districts to be cut out of the map\n",
      "   For this version, we ignore the nDistricts parameter in the cutPoly file\n",
      "For OH my input file says to cut out 0 districts out of 18\n",
      "There were no cut districts in OH\n"
     ]
    }
   ],
   "source": [
    "print(\"This code block reads in a csv with whole districts to be cut out of the map\")\n",
    "unclippedMAP = MAP\n",
    "trimDF = pd.read_csv(\"state_map_files/cutNclipPolyLists.csv\")\n",
    "stateRows = trimDF[\"state\"].to_list()\n",
    "DFrow = stateRows.index(STATE)\n",
    "nClips = trimDF[\"nClipPoly\"][DFrow]\n",
    "nCuts  = trimDF[\"nCutPoly\"][DFrow]\n",
    "nCutDistricts = nCuts\n",
    "nStops = trimDF[\"nStopLines\"][DFrow]\n",
    "#nDistricts = trimDF[\"nDistricts\"][DFrow]\n",
    "print(\"   For this version, we ignore the nDistricts parameter in the cutPoly file\")\n",
    "stopLines = list()  #the 'stoplines' stop wedge growth that hops across concave map areas (not currently used)\n",
    "cutCountyList = list()\n",
    "allCutLists, allCutPops = list(), list()\n",
    "print(\"For\",STATE,\"my input file says to cut out\",nCuts,\"districts out of\",nDistricts)\n",
    "if nCuts > 0:\n",
    "    cutList = list()\n",
    "    cutXs = ast.literal_eval(trimDF[\"cutXs\"][DFrow])\n",
    "    cutYs = ast.literal_eval(trimDF[\"cutYs\"][DFrow])\n",
    "    cutPoints = [Point(cutXs[i],cutYs[i]) for i in range(len(cutXs)) ]\n",
    "    for cutNo in range(nCuts):\n",
    "        print(\"performing cut no\",cutNo,\"for state\",STATE)  #first two cutPoints must form the cutLine\n",
    "        cutNotDone = True\n",
    "        thisCutPoints = [ cutPoints[int(4*cutNo)],cutPoints[int(4*cutNo+1)],cutPoints[int(4*cutNo+2)],cutPoints[int(4*cutNo+3)]  ]\n",
    "        while cutNotDone:\n",
    "            cutPoly = Polygon([thisCutPoints[0],thisCutPoints[1],thisCutPoints[2],thisCutPoints[3] ])\n",
    "            cutLine = LineString([thisCutPoints[0], thisCutPoints[1] ] )\n",
    "            cutList = list()\n",
    "            cutPop = 0.\n",
    "            for c in range(nCounties):\n",
    "                if cutPoly.intersects(countyGeom[c]):\n",
    "                    if cutPoly.contains(countyGeom[c]):\n",
    "                        cutList = cutList + countyTractList[c]\n",
    "                        cutPop += countyPop[c]\n",
    "                    else:\n",
    "                        for t in countyTractList[c]:\n",
    "                            if cutPoly.contains(tractCP[t]):\n",
    "                                cutList.append(t)\n",
    "                                cutPop += tractPop[t]\n",
    "                            if STATE == \"NC\":\n",
    "                                if t == 1828:\n",
    "                                    print(\"special for NC - include vtd 1828 from county 55 in the cut list for contiguity\")\n",
    "                                    cutList.append(t)\n",
    "                                    cutPop += tractPop[t]\n",
    "            print(\"the total proposed cutPop is\",cutPop,\". Compare to\",int(statePop/nDistricts) )\n",
    "\n",
    "            doIcut = input(\"enter 1 to apply the cut\")\n",
    "            if str(doIcut) == str(1):\n",
    "                cutNotDone = False\n",
    "                allCutLists.append(cutList)\n",
    "                allCutPops.append(cutPop)\n",
    "            else:\n",
    "                print(\"Here is the state and the last proposed cutPoly.\")\n",
    "                plotPoly(cutPoly)\n",
    "                plotPoly(MAP)\n",
    "                plt.show()\n",
    "                print(cutPoly)\n",
    "                oldPts = list(cutPoly.exterior.coords)\n",
    "                newPtXs = ast.literal_eval(input(\"enter alternate [ x0, x1 ] for the first two points\") )\n",
    "                newPtYs = ast.literal_eval(input(\"enter alternate [ y0, y1 ] for the first two points\") )\n",
    "                thisCutPoints = [Point(newPtXs[0],newPtYs[0]), Point(newPtXs[1],newPtYs[1]),oldPts[2], oldPts[3] ]\n",
    "allCutVTDs = list()\n",
    "for L in allCutLists:\n",
    "    for v in L:\n",
    "        allCutVTDs.append(v)\n",
    "if nCutDistricts == 0:\n",
    "    print(\"There were no cut districts in\",STATE)\n",
    "else:\n",
    "    print(\"here are your cut districts\")\n",
    "    plotPoly(MAP)\n",
    "    for i,L in enumerate(allCutLists):\n",
    "        cutGeo = tractGeom[L[0]]\n",
    "        for v in L:\n",
    "            cutGeo=cutGeo.union(tractGeom[v])\n",
    "        plotPoly(cutGeo,2)\n",
    "        plotCenter(i,cutGeo)\n",
    "        plotCenter(allCutPops[i],Point(cutGeo.centroid.x,cutGeo.centroid.y-0.5) )\n",
    "    plt.show()\n",
    "    "
   ]
  },
  {
   "cell_type": "raw",
   "id": "b2d42435-5f70-4690-8c9c-f73583db2c11",
   "metadata": {
    "tags": []
   },
   "source": [
    "if nCutDistricts > 0:\n",
    "    print(\"Write the vtd cutlists to a file\")\n",
    "    cutDistrictNo = list()\n",
    "    for v in allCutVTDs:\n",
    "        for i,L in enumerate(allCutLists):\n",
    "            if v in L:\n",
    "                cutDistrictNo.append(i)\n",
    "                break\n",
    "    nbrDF = pd.DataFrame( {\"vtdNo\":allCutVTDs,\"cutDistrictNo\":cutDistrictNo} )\n",
    "    outname = STATE+\"wholeDistrictCuts.csv\" \n",
    "    outpath = \"2024state_HD_output/\"+outname\n",
    "    nbrDF.to_csv(outpath)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "17721728-e5c0-4787-b430-9d7d94970667",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "18 districts\n"
     ]
    }
   ],
   "source": [
    "countyPop = [0. for c in range(nCounties)]\n",
    "for t in range(nTracts):\n",
    "    countyPop[countyNo[t]] += tractPop[t]\n",
    "print(nDistricts,\"districts\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "b6bf725a-c66e-4fa4-b9da-fdc09191c312",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "special for county-specific drawing ...\n"
     ]
    }
   ],
   "source": [
    "print(\"special for county-specific drawing ...\")\n",
    "allCutVTDs = list()\n",
    "for t in range(nTracts):\n",
    "    if countyNo[t] not in liveCountyList:\n",
    "        allCutVTDs.append(t)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "f3073320-8d92-45ba-beb2-fb8c08d7170d",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Removed all whole districts.  Finalize stats before squishing in outcroppings.\n",
      "Of the total statePop 11799448.0 we ignore 9645005.0 as it is cut out of the map\n",
      "This excluded pop comes from a total of 7495 tracts\n",
      "Our final adjusted number of state districts, excluded fixed cut-out is 18 rather than original 18\n",
      "Each district will be drawn to house 119691.278 = 1/ 18 of non-cutout state pop 2154443.0 vs original= 11799448.0\n",
      "  ...unless we modify below by county\n",
      "Here is a county-level modified map with each county's fraction of a district pop\n",
      "working on county 0\n",
      "working on county 20\n",
      "working on county 40\n",
      "working on county 60\n",
      "working on county 80\n",
      "here is the OH map excluding cut and unpop coastal tracts\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(\"Removed all whole districts.  Finalize stats before squishing in outcroppings.\")\n",
    "trueCountyPop = [countyPop[c] for c in range(nCounties)]\n",
    "trueCountyGeom = countyGeom.copy()\n",
    "countyPop = [0. for c in range(nCounties)]\n",
    "trueStatePop, true_nDistricts = np.sum(trueCountyPop), nDistricts\n",
    "trueCountyTractList = [list() for c in range(nCounties)]\n",
    "# minTractPop = 4.5  #already defined above\n",
    "populatedTractList = list()\n",
    "countyTractList = [list() for c in range(nCounties)]\n",
    "statePop, excludedPop = 0., 0.\n",
    "\n",
    "for t in range(nTracts):\n",
    "    trueCountyTractList[countyNo[t]].append(t)\n",
    "    if t in allCutVTDs or t in skipList:  #  or vtdPop[t] < minTractPop:  #need to keep low-pop vtds as VEST may have assigned votes to them\n",
    "        excludedPop += tractPop[t]\n",
    "    else:\n",
    "        populatedTractList.append(t)\n",
    "        countyTractList[countyNo[t]].append(t)\n",
    "        countyPop[countyNo[t]] += tractPop[t]\n",
    "        statePop += tractPop[t]\n",
    "        #tractPop[t] = max(tractPop[t],0.000001)  #avoid possible later div/zero errors for nil-vote vtds\n",
    "print(\"Of the total statePop\",statePop+excludedPop,\"we ignore\",excludedPop,\"as it is cut out of the map\") #,\n",
    "#\"or in sparsely populated areas (<\",minTractPop,\") per geom\")\n",
    "print(\"This excluded pop comes from a total of\",len(set(skipList).union(set(allCutVTDs)) ),\"tracts\")\n",
    "true_nDistricts = nDistricts\n",
    "nDistricts -= nCutDistricts\n",
    "print(\"Our final adjusted number of state districts, excluded fixed cut-out is\",nDistricts,\"rather than original\",true_nDistricts)\n",
    "aDP = statePop/float(nDistricts)\n",
    "print(\"Each district will be drawn to house\",r3(aDP),\"= 1/\",nDistricts,\"of non-cutout state pop\",statePop,\"vs original=\",trueStatePop)\n",
    "print(\"  ...unless we modify below by county\")\n",
    "print(\"Here is a county-level modified map with each county's fraction of a district pop\")\n",
    "\n",
    "vtdGeom = tractGeom.copy()\n",
    "nVTDs = len(vtdGeom)\n",
    "\n",
    "cutCountyList, uncutCountyList = list(), list()\n",
    "for c in range(nCounties):\n",
    "    if c%20 == 0:\n",
    "        print(\"working on county\",c)\n",
    "    if len(countyTractList[c]) == 0:  #no vtds added to county b/c all were in cut lists:\n",
    "        cutCountyList.append(c)\n",
    "    else:\n",
    "        uncutCountyList.append(c)\n",
    "        countyGeom[c] = tractGeom[countyTractList[c][0]]\n",
    "        for t in countyTractList[c]:\n",
    "            countyGeom[c] = countyGeom[c].union(tractGeom[t])\n",
    "uncutMAP = MAP\n",
    "MAP = countyGeom[uncutCountyList[0]]\n",
    "for c in uncutCountyList:\n",
    "    MAP = MAP.union(countyGeom[c])\n",
    "print(\"here is the\",STATE,\"map excluding cut and unpop coastal tracts\")\n",
    "\n",
    "for c in uncutCountyList:\n",
    "    plotPoly(countyGeom[c])\n",
    "    FONTSIZE = 11\n",
    "    if countyPop[c] / statePop < 0.02:\n",
    "        FONTSIZE = 7\n",
    "        plotCenter(r3(countyPop[c]/aDP),countyGeom[c], FONTSIZE)\n",
    "    else:\n",
    "        plotCenter(round(countyPop[c]/aDP,2),countyGeom[c], FONTSIZE)\n",
    "plotPoly(trueMAP,0.1)\n",
    "#for c in cutCountyList:\n",
    "#    plotPoly(countyGeom[c],0.2)\n",
    "#    plotCenter(\"cut\",countyGeom[c],6)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "0062ac21-3328-4616-99ed-70c53e62b308",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Now finalize the map topology before any squish operations.  Plot countyPop/aDP\n",
      "Working on county  0 distances\n",
      "Working on county  20 distances\n",
      "Working on county  40 distances\n",
      "Working on county  60 distances\n",
      "Working on county  80 distances\n",
      "the max LAT-scaled distance between counties is 1.42812\n"
     ]
    },
    {
     "data": {
      "image/png": "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brml9XeDwcCqVata71NYWMixY8fIz88/5T779+9Pampqm/s4nU42b97c7n2EOFv7t1RQebSBiTcOQiOTxAmhGoPWwLzxD+AJNvPOwffULqdDYlOiGH5JHwqWHcHd6G33djU1NcTHx6PRtLzH9OnTh5KSEqClp+Jvf/sbY8eO5frrrz/t0Ae1OTwOIDRmuYVOBpaYmBhGjBjR5mK1WklISGDEiBHY7Xbuuusu5s2bxyeffEJBQQF33nkn+fn5TJgwoXU/Q4cOZenSpQCt87j8+te/5t1332XXrl3cdtttpKenc91113XpwYreze8NsOmdIvqPSiR9cGh8YxCiN3tj35sAzMm7X+VKOm781Vmg0bBz9dkNQ2hsbCQpKYmCggIuv/xyHnrooa4tsAvVu+uB0FhHCKDLp6575pln0Gq13HDDDXg8Hi6//HJeeOGFNrcpLCzE4XC0/v2///u/uFwufvSjH1FfX8+FF17IRx99pPo4GRFZdq4upqneywVzZJI4IUJBenQKWo0uJKZ97yhLtJFxV2bx/j/WE/CdemHEhIQEamtrURQFjUZDSUkJ6ekt65T16dOndW6y66+/nueff77Hau+Mz45/xi83tJxcE5YtLKeyZs0ann322da/zWYzf/rTn6itrcXlcvH2229/ayyKoijccccdrX9rNBoee+wxysvLcbvdrFy5kiFDhpxraUK08nkDbF9xjOEXpRObEqV2OUIIYF/tAYJKgIP1B9UupVNyL8vAYjPgcnhOeb1Go2HChAmtA21fffVVpk+fDsC1117LmjVrgJbPz5ycnB6pubPWlayn0efg3lH30tfWV+1yAFlLSPQShZvK8Tb5GT01NF54QggYlzIWgN99/pzKlbRvypQp3HTTTXz44YdkZGSwceNG7vqfH/DUG/dyqHg/ffpksGTJEgB++MMfsnVry1lPTz31FL/4xS8YOHAgcXFxrQNwFyxYwMsvv0xubi5/+tOf+N3vfqfasZ1OpauWzOgB3DP6HrSa0IgK6q9mJEQ3U4IKX6wupv/oJGyJFrXLEUKc8IORd7CtYifbKwsobigmMyb05kVaufLbq0nn5+fjafbzysPryZ2UwYQZAwH429/+1nqbwYMHU1BQ8K37xsfHs3z58u4ruIvUNNeSECIz3J4UGrFJiG50bE8tdeVNjJocem+GQvR2Px71A5y+Or7/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JAkJCYwZM4bf/va3+P3+7jiMXqW7nrONGzcSGxvLuHHjWrdNmTIFrVbL5s2bu+VYepOOPm9fV1payttvv80ll1xyxv3La63rdddzJq+104uYxQ9F19JoNKxcuZLrrruOmJgYtFotycnJfPTRR8TFxQHg8Xi4+eab+e1vf0vfvn05dOhQh/b9wAMPkJeXR3x8PBs2bGDBggWUlZXx9NNPd+chRbzues7Ky8tJTk5us02v1xMfH3/KribROR153k66+eabeeedd2hubmb69On87W9/O+2+5bXWPbrrOZPX2ulJC0sv8/DDD39rEN43L/v27UNRFGbPnk1ycjKfffYZn3/+Oddddx3Tp0+nrKwMgAULFpCTk8Ott97aqRrmzZvHpZdeSm5uLnfffTe///3v+cMf/oDH4+mOQw57ofCcic7ryuftpGeeeYZt27bxzjvvUFRUxLx5805bg7zWOicUnjPRPpmav5epqqqipqbmtLcZMGAAn332GdOmTaOurq7N0uiDBw/mrrvu4uGHH2b06NHs2rULjUYDgKIoBINBdDodjzzyCL/85S87VNPu3bsZMWIE+/btIzs7++wPLkKp/Zz9/e9/56GHHqKurq51m9/vx2w2s2TJEmbOnNlFRxpZuvJ5O5V169Zx0UUXUVpaSlpaWodqktfa6an9nMlr7fSkS6iXSUpKIikp6Yy3a2pqAvjWGAetVkswGATgrbfeorm5ufW6LVu28IMf/IDPPvuMgQMHdrimHTt2tDapim9T+znLz8+nvr6egoKC1v751atXEwwGOf/888/qmHqDrnzeTuXkdZ1pLZHX2ump/ZzJa+0M1BvvK0JZVVWVkpCQoFx//fXKjh07lMLCQuUnP/mJYjAYlB07dpzyPp988sm3zjjZvHmzkp2drRw/flxRFEXZsGGD8swzzyg7duxQioqKlH/9619KUlKSctttt/XEYUW07nrOFEVRrrjiCmXMmDHK5s2blXXr1imDBw9Wbr755u4+pF6hI8/bBx98oPz9739Xdu3apRw+fFh5//33lZycHGXixImt+5HXWs/prudMUeS1djoSWES7tmzZokybNk2Jj49XYmJilAkTJigffvhhu7c/1YffyW2HDx9WFEVRCgoKlPPPP1+x2+2K2WxWcnJylCeeeEJxu93dfDS9Q3c8Z4qiKDU1NcrNN9+sREdHKzabTbnzzjuVhoaGbjyS3uVMz9vq1auV/Pz81tfN4MGDlfnz58trTUXd8ZwpirzWTkfGsAghhBAi5MlZQkIIIYQIeRJYhBBCCBHyJLAIIYQQIuRJYBFCCCFEyJPAIoQQQoiQJ4FFCCGEECFPAosQQgghQp4EFiGEEEKEPAksQgghhAh5EliEEEIIEfIksAghhBAi5ElgEUIIIUTI+/8TDo+pDrDeugAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdin",
     "output_type": "stream",
     "text": [
      "enter user-picked max district diameter, or 0 to accept 1.42812  0.7\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "I have also identified each county's neighbors.  Let's visualize the counties with two or fewer neighbors\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiwAAAGdCAYAAAAxCSikAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAABD3klEQVR4nO3deXwU9f0/8NfsnT1zJ2ASbsJl5NBCxJsYzU8BIy2WoijaWhUEg1pI8ahUBUsVrAfiBfpVvihVvL4iWiIoCAiRWIQaNKIEcpFrz+w9vz9CtkZyH8zs5vXsYx4hs7OfeQ/jdl985jOfEURRFEFEREQkYwqpCyAiIiJqDwMLERERyR4DCxEREckeAwsRERHJHgMLERERyR4DCxEREckeAwsRERHJHgMLERERyZ5K6gJ6SjAYRFlZGUwmEwRBkLocIiIi6gBRFGG329G/f38oFK33o0RMYCkrK0NqaqrUZRAREVEXlJaWIiUlpdXXIyawmEwmAI0HbDabJa6GiIiIOsJmsyE1NTX0Pd6aiAksTZeBzGYzAwsREVGYaW84BwfdEhERkewxsBAREZHsMbAQERGR7DGwEBERkewxsBAREZHsMbAQERGR7DGwEBERkewxsBAREZHsMbAQERGR7DGwEBERkewxsBAREZHsMbAQERGR7EXMww+JiKhvOuE4gUAwgFhdLAxqQ7sP0aPwxMBCRERhyxPw4Mq3rgz9rlZoYFRbYNHEwKwxwaI1IybKAovWBJPGBLPGDKPaCJPGFFoMagP0Kj0MagO0Si0Dj0wxsBARUdjyBXwAgJnDZ2JC0gTUumtR76lHTUMt6tw21LttqHBWweGzo8HvhMvvgDfoabU9AQrolFHQqfTQKaMQpdRDr9bDoNbDpDXCrDHAoNGHQo5e1fh64zb/XWdQGxrXq/RQK9Vn6q8jojGwEBFR2BIhAgAm9puI7IHZHXqPL+CD3WeH3du4OH1OOH1OuPwuuHynFr/r1HoX7B4n7F4HKp0n8UP9T3D7XXAHGuAONP4MioE296cS1NCp9I3hR2WEUWOEWWNCtM6EaK0ZRk1jj49RY4RJ3fjTqD61nHpNr9L3+Z4fBhYiIgpbQTEIAJ36Mlcr1YhVxiJWF9vt/YuiCG/QC5fP1Wroafrp8Dpg99pR77aj3mPD0frjcPrscPmdaAg40eB3QUSwxf0IUCBK1Rh4olQGGNWNoceiMyFGa4ZJa2p2mcus/m8QaroUplFqun28UmJgISKisCdAmt4HQRCgVWqhVWoRo4vpVluiKMLld8HutcPhdcDhaww4TT+dPmfotXqPDfVuO07YK1Bc8z2c/qZLXs5WQ49aoUGU0gC9ygC9ygiTxgiz1oRonTk0xqdpfI9BbWjW42PSmBCjjYFSoezWMXYHAwsREYUtUWy8JCRVYOlJgiDAoDbAoDYAhq61ERSDcPlccPgcsHltoctedq8dNq8tFIRsHjvq3TZYPXZUOKvg9DkaA0/ACU+gocW2r0j7f/j7pY914wi7h4GFiIjCVtMYlgjIKz1CISgax8BojEg2JHepDX/Q/9/enFO9O3/78nHUe2w9XG3nMLAQEVHYagosCs6D2mNUChUsWgssWst/1wlaWHQmCaviTLdERBTGujLoljrP4bPDojVKWgMDCxERhb1IGMMiZy6/C0aNtIGFl4SIiEjW1hQ9hwpnBbQqDbRKLTRKTejOHKvHCoA9LL2twe+EUc3AQkRE1CK3341nv34GiVH9oVXo4BN98AW88AUbl4aAEwIUSNInSV1qRHMHXAwsREREran31AMAlk1+AJPPmtziNqIosoelF3lPBUSpLwlxDAsREclWrbsWABCti251G4aV3uX0OQGgcX4YCTGwEBGRbNW76wEAMdruzSJLXefwOQBA8ktCDCxERCRbdZ46AEC0NlraQvqwph4WBhYiIqJWWD3WxmfgqKKkLqXPcngbe1h4SYiIiKgVVq8VBpWJ41QkFOph4aBbIiKillk9VhjVZqnL6NOaxrCwh4WIiKgVtQ31MGsYWKTk9DmhEJTQKXWS1sHAQkREslXTUN/mLc3U+xw+B/RKg+SX5RhYiIhIturdVsRFRUtdRp/m8DqgU+mlLoOBhYiI5MvusyGWPSyScvqciFJKO34FYGAhIiIZc/pssGgtUpfRp1k9dhgknoMFYGAhIiKZEkURDr+dgUViVo8dJi0DCxERUYucPieCYgBmLe8SkpLN44BZw0tCRERELWp6UrNFwx4WKdm9dsTopD8HDCxERHTGiaKIenc9nD4n/EF/i9tYvVYAfI6Q1Fx+B8xak9RlQCV1AURE1Pf8fd8qvPqfdaHf1QoN9CojDCoTTBozTBojrJ7GwMJLQtJy+R0waRhYiIioD9p1Yg/Ojs/AnFE3oMHfAJffBZvXBpvHhjq3FfVuO1JM/XFev/FI1idLXW6fJYpiY2BRM7AQEVEf1M+YhG9r/4OLUi6CXi39pGTUsgZ/AwJiQBY9LBzDQkREZ1zWgEtQ7a5ETUON1KVQG+xeOwAwsBARUd9UXHsEMdp4pJhSpC6F2tD0pGYGFiIi6pO2HduO7IFZkj9Qj9rGHhYiIurTRIjYdGQTat21UpdCbbB5bQAYWIiIqI96ePJfEBQDOFB1QOpSqA3sYSEioj4ts38mAKCwslDiSqgtDq8DSkEJnVIndSkMLEREdOY1+BsgQMDQ6KFSl0JtsPvs0KuMshhrxMBCRERn3JG6IxAhYlTcKKlLoTbYvDboVdJfDgK6GVhWrFgBQRBw1113hda53W7MmzcPcXFxMBqNmDFjBiorK9tsRxRFPPDAA+jXrx+ioqKQlZWF7777rjulERGRjDX9iz0gBiSuhNpic9tgUBmlLgNANwLLvn37sHbtWmRkZDRbn5eXh/fffx+bNm3Cjh07UFZWhmuvvbbNtv72t7/hH//4B5577jns3bsXBoMBV1xxBdxud1fLIyIiGRtiGQIA+K6O/ziVszq3DSZNGAcWh8OB2bNn44UXXkBMTExovdVqxUsvvYQnnngCl112GSZMmIB169bhiy++wJ49e1psSxRFrF69Gvfddx+mT5+OjIwMvPrqqygrK8M777zTpYMiIiL5eue7d/C7/5sDABgRO0LiaqgtVo8dFp08Hj7ZpcAyb948XHXVVcjKymq2vrCwED6fr9n6ESNGIC0tDbt3726xraNHj6KioqLZeywWCyZOnNjqewDA4/HAZrM1W4iISP6ePrAWR23fIf9Xf2ZgkTmrx4YYnUXqMgB0IbBs3LgRX331FZYvX37aaxUVFdBoNIiOjm62PikpCRUVFS2217Q+KSmpw+8BgOXLl8NisYSW1NTUTh4JERFJ4baxtwAALFp5/Mu9JcuXL8d5550Hk8mExMREXHPNNSguLm5xW1EUkZOTA0EQ2r0y8PbbbyM7OxtxcXEQBAFFRUU9X3wPcvodiJbJeepUYCktLcXChQvx+uuvQ6eT9p7s/Px8WK3W0FJaWippPURE1DG/Hv5rjIw5G88eWIsGf4PU5bRox44dmDdvHvbs2YNPPvkEPp8P2dnZcDqdp227evXqDt/263Q6ccEFF+Cxxx7r6ZJ7hcvvgFEmY1hUndm4sLAQVVVVGD9+fGhdIBDAZ599hqeffhpbt26F1+tFfX19s16WyspKJCcnt9hm0/rKykr069ev2XvGjh3bai1arRZarbYz5RMRkUw8euEyXPfBb/H3fU/g/sylUpdzmo8++qjZ7+vXr0diYiIKCwtx0UUXhdYXFRXh8ccfx/79+5t9h7XmhhtuAAD8+OOPPVpvb3H5HbKY5RboZA/LlClTcPDgQRQVFYWWc889F7Nnzw79Wa1WY9u2baH3FBcX49ixY8jMzGyxzUGDBiE5ObnZe2w2G/bu3dvqe4iIKLwNjRmKu89dhDePbETBsQKpy2mX1WoFAMTGxobWuVwu/O53v8MzzzzT6j/Kw5kn4IEv6IVZE4aXhEwmE8aMGdNsMRgMiIuLw5gxY2CxWHDLLbdg0aJF+PTTT1FYWIi5c+ciMzMTkyZNCrUzYsQIbN68GQBC87g8/PDDeO+993Dw4EHMmTMH/fv3xzXXXNOjB0tERPJxaeqlAIBdJ76QuJK2BYNB3HXXXZg8eTLGjBkTWp+Xl4fzzz8f06dPl7C63iOn5wgBnbwk1BGrVq2CQqHAjBkz4PF4cMUVV+DZZ59ttk1xcXEorQLAn/70JzidTtx6662or6/HBRdcgI8++kjycTJERNR7nvv6eQDAbef8UeJK2jZv3jx888032LlzZ2jde++9h4KCAhw4ELkPb2wKLEZ1GI5hacn27dub/a7T6fDMM8/gmWeeafU9oig2+10QBCxbtgzLli3rbjlERBQmYnQWKAUl4qLipC6lVfPnz8cHH3yAzz77DCkpKaH1BQUFKCkpOe2u2BkzZuDCCy887bsx3PiDfhTXNt4VFbE9LERERB2hV+uhVmihEOT3WDtRFHHnnXdi8+bN2L59OwYNGtTs9SVLluD3v/99s3Vnn302Vq1ahalTp57JUnvFK4deweqvVkOAIJtAycBCRESS2Fu+D+6AC9/Wfiu7CeTmzZuHDRs24N1334XJZArNC2axWBAVFYXk5OQWB9qmpaU1CzcjRozA8uXLkZubCwCora3FsWPHUFZWBgChuV1aa08qVa4qJEWlYF3O84iPipe6HAB8WjMREUlkXOI4AMDq/U9LXMnp1qxZA6vViksuuQT9+vULLW+88Uan2vnlmM333nsP48aNw1VXXQUA+O1vf4tx48bhueee69H6u6vObUOsLg6pJvlMysoeFiIiksT8cXfgPzXFqG2ok7qU0/xyrGVX3/PLdTfddBNuuummrpZ1xtS7rbDIZOxKE/awEBGRZEbEDsc3tQew/ptXpC6FfkZODz1swsBCRESSmTfudoxNGIcX/v2y1KXQzzh8dsQwsBARETVSCAqcdNUhs/9EqUuhn3H5nbK5nbkJAwsREUkqVheD4trvUO4ol7oUOkVOzxBqwsBCRESSWpq5GLXuaizafi88AY/U5fR5QTGIBr9TNk9pbsLAQkREkhodNxrLL3oE39Yexv07H5K6nD7P6XNChCi7Hhbe1kxERJK7KOUi3Hz2XKz7Zj1K7bfLav6PSHXUehSP7X0cUWodik4Wwu13Y97YeWjwNwAATGp5BRb2sBARkSxcl34dfEEvNn+3WepS+oR9Ffuwq3wHyh1VqG6ohsPnwBOFq/CPA/8AAPQz9pO4wubYw0JERLKQqE/ExOTJ+PTYTiwYv0DqciKew+eAXmXExqmvNlvf4G+AN+CFRWuRqLKWsYeFiIhkY2TcMHxv/Q/sXrvUpUQ8h7cxsPxSlCpKdmEFYA8LERHJgC/ow6r9T+J//vMKstNyYFTL6w6VSOTwOhCl1EtdRocxsBARkaTKHeW469O7UVx3GHdPuAc3jp4DQRCkLivi1XvsMMhsYG1bGFiIiEgy20u3I//zpdApo7D+yvUYmzhW6pL6DKvHDrM2fHqyGFiIiEgSf939KN488r84v9+F+NvFy2U5biKS2Tx29DMmSl1GhzGwEBHRGSeKIjYdeQPXj7wefzrvT7wEJAGHz4Fo3RCpy+gwBhYiIjrjBEGAXmVAfFQ8w4pEXH4nNh3ZhK8qvkG01oKYKAt+N/I6nJd8ntSltYiBhYiIJGFQmWDz2qQuo8/686R7caDyAOo9NtQ11GPH8e2Ii4pmYCEiIvo5g9qEerdV6jL6rClpUzAlbUro9wv+92LE6eIkrKhtnDiOiIgkYdaYUO9mD4scBMUgHD4rYnWxUpfSKgYWIiKShFlrgtXjkLoMAmD32hEQA4iNYmAhIiJqxqIzcQp+mahx1wAAe1iIiIh+yaI1wel3Sl0GAahtqAUAxOhiJK6kdQwsREQkCaPaCDcDiyzUeeoAgINuiYiIfsmoNsLFwCILtQ21UApKmDTyfbYQAwsREUnCqDHCHXAhKAalLqXPs3qt0KtMUAjyjQXyrYyIiCKaUW2ECBEun0vqUvo8l88FnTJK6jLaxMBCRESSMGoanxTs8PHWZqk1+BsYWIiIiFpiVJ8KLF4GFqk5vE7oVAwsREREpwkFFvawSM7hdcGg1ktdRpsYWIiISBK8JCQfDp8LegYWIiKi07GHRT5sHjuitfK9pRlgYCEiIono1XoIEDiGRQbsPhtioixSl9EmBhYiIpKEQlBAp9TD6ePkcVJz+GywaBlYiIiIWqRXGfgARImJogiX3wGzxix1KW1iYCEiIsnoVAb2sEjMHXDDF/Syh4WIiKg1BpUR9R6b1GX0abZTf/8WDQMLERFRi0waI6xuXhKSktVrBQCYtbwkRERE1CKLzgSbh4FFSuxhISIiake01gQ7x7BIij0sRERE7TBrTXD62MMipaYeFt4lRERE1IpobTTsvnqpy+jTbF4bdEo9VAqV1KW0Sd7VERFRRIvVxcLld8Af9Mv+CzNSvPv9eyj4aTuSjQlI0CfgzeI3oVXqpC6rXfyvg4iIJNP0AESnzyn7eUAixYbDb+Jw3dc4yzAQ9Z4aOP12nB03Tuqy2sXAQkREkjGoDQAYWM4kq9eG3434HfIn5gMAPAEPFIL8R4jIv0IiIopYepUeAPCT7SdYPVYEggGJK4p8Dp8V0dro0O9apRZqhVq6gjqoUz0sa9aswZo1a/Djjz8CAEaPHo0HHngAOTk5AICSkhLcc8892LlzJzweD6688ko89dRTSEpKarXNQCCAv/zlL3jttddQUVGB/v3746abbsJ9990HQRC6fmRERCR7TbfS3vrJraF1OmUUolRG6FVGGNVGmDRGROvMiNNFI14fjxRTCvoZ+iFKFQWtUguNUgOdUtf4U6WDRqHh90crRFEMiwcdtqRTgSUlJQUrVqzAsGHDIIoiXnnlFUyfPh0HDhzAwIEDkZ2djXPOOQcFBQUAgPvvvx9Tp07Fnj17oFC03Jnz2GOPYc2aNXjllVcwevRo7N+/H3PnzoXFYsGCBQu6f4RERCRbgy2D8fa0t3Gy4SQcXgccPgfsXjscPgdsHhusHjvq3XZUOqtxpLYEdZ7qDt1VpFZoQotGoYVaoYFOGQW9Wg+DWg+jRg+TxgCjxoAoVeP6KFUU9Co9otSnfp5ar1fpoVPqQiFIgAClQgmj2gitUhtW4cjldyEg+pv1sIQLQRRFsTsNxMbGYuXKlUhNTUVOTg7q6upgNjcmZqvVipiYGHz88cfIyspq8f1XX301kpKS8NJLL4XWzZgxA1FRUXjttdc6XIfNZoPFYoHVag3tn4iIIo/D60CVqwrugBvegBeegKf54m/+uzfghTvghsvXALvHCYfXCafPBafPBXegAe5AAzynfvqC3k7VohLU0KuM0KsMMKhNMGtMsGhNiImywKI1w6QxneolMsGsMcOo+e+fTRoT9Cr9GQ08JxwncOVbV2Jt1lqcf9b5Z2y/beno93eXB90GAgFs2rQJTqcTmZmZKCkpgSAI0Gq1oW10Oh0UCgV27tzZamA5//zz8fzzz+PIkSMYPnw4vv76a+zcuRNPPPFEm/v3eDzweDyh3202PjyLiKgvMGqMobuLelogGECDvwEuv6vxp6/xp9vvhtj0P1FEQAyEeoPsXjscXgesHhvq3FbUu20otZfB6XfA5XM03rYt+lrcn1JQwqAyw6g2w6QxI0ZrQZw+GjG6aFi0FkRrG39aNBZYtBaYtWZYtBYY1cYuDZS1ehpntbXoIvySEAAcPHgQmZmZcLvdMBqN2Lx5M0aNGoWEhAQYDAYsXrwYjz76KERRxJIlSxAIBFBeXt5qe0uWLIHNZsOIESOgVCoRCATwyCOPYPbs2W3WsXz5cjz00EOdLZ+IiKhVSoWyxwORKIrwBDyNl7m8tlDIsXvtjZe9vFbUe+pR29C4lNQdg817EE6/HQ6fFQHx9IHIAhQwqE2NQUdtRowuGrFR0YjVNYacpmBj0fws9GgtqHPXAZD/c4Na0unAkp6ejqKiIlitVvzzn//EjTfeiB07dmDUqFHYtGkTbr/9dvzjH/+AQqHArFmzMH78+FbHrwDAm2++iddffx0bNmzA6NGjUVRUhLvuugv9+/fHjTfe2Or78vPzsWjRotDvNpsNqampnT0cIiKiXiUIAnQqHXQqHeKj4jv1XlEU0eBvgNXTGGqsXiusnsbF5rXB6rGi1l2PGlc9jllP4JuT/4HDZ4XDZ2u1VwcAYnQx3T2sM67bY1iysrIwZMgQrF27NrSuuroaKpUK0dHRSE5Oxt1334177723xfenpqZiyZIlmDdvXmjdww8/jNdeew3ffvtth+vgGBYiIqJGoijCHXCfFm6sHiuMGiOuGHiF1CWG9PoYlibBYLDZWBIAiI9vTJAFBQWoqqrCtGnTWn2/y+U6rQdGqVQiGAx2tzQiIqI+SRAERKmiEKWKQrIhWepyekSnAkt+fj5ycnKQlpYGu92ODRs2YPv27di6dSsAYN26dRg5ciQSEhKwe/duLFy4EHl5eUhPTw+1MWXKFOTm5mL+/PkAgKlTp+KRRx5BWloaRo8ejQMHDuCJJ57AzTff3IOHSUREROGsU4GlqqoKc+bMQXl5OSwWCzIyMrB161ZcfvnlAIDi4mLk5+ejtrYWAwcOxNKlS5GXl9esjZKSElRXV4d+f+qpp3D//ffjjjvuQFVVFfr3748//vGPeOCBB3rg8IiIiCgSdHsMi1xwDAsREVH46ej3N58lRERERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLXqcCyZs0aZGRkwGw2w2w2IzMzE1u2bAm9XlJSgtzcXCQkJMBsNmPmzJmorKxst90TJ07g+uuvR1xcHKKionD22Wdj//79nT8aIiIiikidCiwpKSlYsWIFCgsLsX//flx22WWYPn06Dh06BKfTiezsbAiCgIKCAuzatQterxdTp05FMBhstc26ujpMnjwZarUaW7ZsweHDh/H4448jJiam2wdHREREkUEQRVHsTgOxsbFYuXIlUlNTkZOTg7q6OpjNZgCA1WpFTEwMPv74Y2RlZbX4/iVLlmDXrl34/PPPu1MGbDYbLBYLrFZraP9EREQkbx39/u7yGJZAIICNGzfC6XQiMzMTHo8HgiBAq9WGttHpdFAoFNi5c2er7bz33ns499xz8Zvf/AaJiYkYN24cXnjhhXb37/F4YLPZmi1EREQUmTodWA4ePAij0QitVovbbrsNmzdvxqhRozBp0iQYDAYsXrwYLpcLTqcT99xzDwKBAMrLy1tt74cffsCaNWswbNgwbN26FbfffjsWLFiAV155pc06li9fDovFElpSU1M7eyhEREQUJjp9Scjr9eLYsWOwWq345z//iRdffBE7duzAqFGj8PHHH+P222/H0aNHoVAoMGvWLBw+fBi/+tWvsGbNmhbb02g0OPfcc/HFF1+E1i1YsAD79u3D7t27W63D4/HA4/GEfrfZbEhNTeUlISIiojDS0UtCqs42rNFoMHToUADAhAkTsG/fPjz55JNYu3YtsrOzUVJSgurqaqhUKkRHRyM5ORmDBw9utb1+/fph1KhRzdaNHDkSb731Vpt1aLXaZpefiIiIKHJ1OrD8UjAYbNbTAQDx8fEAgIKCAlRVVWHatGmtvn/y5MkoLi5utu7IkSMYMGBAd0sjIiKiCNGpwJKfn4+cnBykpaXBbrdjw4YN2L59O7Zu3QoAWLduHUaOHImEhATs3r0bCxcuRF5eHtLT00NtTJkyBbm5uZg/fz4AIC8vD+effz4effRRzJw5E19++SWef/55PP/88z14mERERBTOOhVYqqqqMGfOHJSXl8NisSAjIwNbt27F5ZdfDgAoLi5Gfn4+amtrMXDgQCxduhR5eXnN2mi6ZNTkvPPOw+bNm5Gfn49ly5Zh0KBBWL16NWbPnt0Dh0dERESRoNvzsMgF52EhIiIKP70+DwsRERHRmcLAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJERESyx8BCREREssfAQkRERLLHwEJE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trfccgsyMjI63PayZctQXl4eWu68886eLL3P6q1zNnv2bBw6dAiffPIJPvjgA3z22We49dZbe7r8Pqu986ZQKDB9+nS89957OHLkCNavX49//etfuO2229ptm5+13tFb54yftTaIRC04efKkCED87LPPQutsNpsIQPzkk0+abfvss8+KF198sbht2zYRgFhXV9dm2wMGDBBXrVrVC1X3bb11zg4fPiwCEPft2xdat2XLFlEQBPHEiRM9fhx9TWfO2889+eSTYkpKSptt87PWO3rrnPGz1jb2sFCL4uLikJ6ejldffRVOpxN+vx9r165FYmIiJkyYENru8OHDWLZsGV599dU2H1r1SytWrEBcXBzGjRuHlStXwu/398Zh9Cm9dc52796N6OhonHvuuaF1WVlZUCgU2Lt3b68cS1/S0fP2c2VlZXj77bdx8cUXt9s+P2s9r7fOGT9rbYuYhx9SzxIEAf/6179wzTXXwGQyQaFQIDExER999BFiYmIAAB6PB7NmzcLKlSuRlpaGH374oUNtL1iwAOPHj0dsbCy++OIL5Ofno7y8HE888URvHlLE661zVlFRgcTExGbrVCoVYmNjW7zURJ3TkfPWZNasWXj33XfR0NCAqVOn4sUXX2yzbX7WekdvnTN+1trGHpY+ZsmSJacNwvvl8u2330IURcybNw+JiYn4/PPP8eWXX+Kaa67B1KlTUV5eDgDIz8/HyJEjcf3113eqhkWLFuGSSy5BRkYGbrvtNjz++ON46qmn4PF4euOQw54czhl1Xk+etyarVq3CV199hXfffRclJSVYtGhRmzXws9Y5cjhn1DpOzd/HnDx5EjU1NW1uM3jwYHz++efIzs5GXV1ds0ejDxs2DLfccguWLFmCsWPH4uDBgxAEAQAgiiKCwSCUSiWWLl2Khx56qEM1HTp0CGPGjMG3336L9PT0rh9chJL6nL388su4++67UVdXF1rn9/uh0+mwadMm5Obm9tCRRpaePG8t2blzJy688EKUlZWhX79+HaqJn7W2SX3O+FlrGy8J9TEJCQlISEhodzuXywUAp41xUCgUCAaDAIC33noLDQ0Nodf27duHm2++GZ9//jmGDBnS4ZqKiopCXap0OqnPWWZmJurr61FYWBi6Pl9QUIBgMIiJEyd26Zj6gp48by1peq0zvSX8rLVN6nPGz1o7pBvvS3J28uRJMS4uTrz22mvFoqIisbi4WLznnntEtVotFhUVtfieTz/99LQ7Tvbu3Sump6eLx48fF0VRFL/44gtx1apVYlFRkVhSUiK+9tprYkJCgjhnzpwzcVgRrbfOmSiK4pVXXimOGzdO3Lt3r7hz505x2LBh4qxZs3r7kPqEjpy3//u//xNffvll8eDBg+LRo0fFDz74QBw5cqQ4efLkUDv8rJ05vXXORJGftbYwsFCr9u3bJ2ZnZ4uxsbGiyWQSJ02aJH744Yetbt/Sl1/TuqNHj4qiKIqFhYXixIkTRYvFIup0OnHkyJHio48+Krrd7l4+mr6hN86ZKIpiTU2NOGvWLNFoNIpms1mcO3euaLfbe/FI+pb2zltBQYGYmZkZ+twMGzZMXLx4MT9rEuqNcyaK/Ky1hWNYiIiISPZ4lxARERHJHgMLERERyR4DCxEREckeAwsRERHJHgMLERERyR4DCxEREckeAwsRERHJHgMLERERyR4DCxEREckeAwsRERHJHgMLERERyR4DCxEREcne/wdXy4HYTEQE2AAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#For corners and outcroppings, we fuse county clusters\n",
    "print(\"Now finalize the map topology before any squish operations.  Plot countyPop/aDP\")\n",
    "preSquishCountyGeom = [countyGeom[c] for c in range(nCounties)]\n",
    "maxD = 0.\n",
    "for c in range(nCounties):\n",
    "    if c%20 == 0:\n",
    "        print(\"Working on county \",c,\"distances\")\n",
    "    if c not in cutCountyList:\n",
    "        plotPoly(countyGeom[c],0.2)\n",
    "        plotCenter(r3(countyPop[c]/aDP), countyGeom[c], 7 )\n",
    "        for cc in range(c+1, nCounties):\n",
    "            dist = getLongDist(countyCP[c],countyCP[cc],xScale)\n",
    "            if dist > maxD and cc not in cutCountyList:\n",
    "                maxD = dist\n",
    "                #print(c,cc,maxD)\n",
    "print(\"the max LAT-scaled distance between counties is\",r5(maxD))\n",
    "plotPoly(MAP)\n",
    "plotPoly(MAP.centroid.buffer(0.5*maxD))\n",
    "plt.show()\n",
    "inputD = float( input(\"enter user-picked max district diameter, or 0 to accept \"+str(r5(maxD))+\" \") )\n",
    "if inputD > 0:\n",
    "    maxD = inputD\n",
    "neighborCountyList = [list() for c in range(nCounties)]\n",
    "for c in uncutCountyList:\n",
    "    if c%20 == 0:\n",
    "        print(\"Working on county \",c,\"neighbors\")\n",
    "    for cc in uncutCountyList:\n",
    "        if cc > c and cc not in cutCountyList:  \n",
    "            if countyGeom[c].intersects(countyGeom[cc]) :\n",
    "                neighborCountyList[c].append(cc)\n",
    "                neighborCountyList[cc].append(c)\n",
    "print(\"I have also identified each county's neighbors.  Let's visualize the counties with two or fewer neighbors\")\n",
    "hasFewNeighborCs, has1neighborCs = list(), list()\n",
    "plotPoly(MAP,0.15)\n",
    "for c in uncutCountyList:\n",
    "    if len(neighborCountyList[c]) == 2:\n",
    "        hasFewNeighborCs.append(c)\n",
    "        plotPoly(countyGeom[c])\n",
    "        plotCenter(c+0.2,countyGeom[c])\n",
    "        for cc in neighborCountyList[c] :\n",
    "            plotPoly(countyGeom[c],0.5)\n",
    "    if len(neighborCountyList[c]) < 2:\n",
    "        has1neighborCs.append(c)\n",
    "        plotPoly(countyGeom[c])\n",
    "        plotCenter(c+0.1,countyGeom[c])\n",
    "        for cc in neighborCountyList[c] :\n",
    "            plotPoly(countyGeom[c],0.2)\n",
    "plt.show()   "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "3b6891c5-093d-4253-89db-1c8790e5f377",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "the revised avgDistrictPop for [24, 30] are [119261, 118662]\n"
     ]
    }
   ],
   "source": [
    "countyADP = [aDP for c in range(nCounties)]\n",
    "countyADP[24] = countyPop[24]/11.1  #not exactly 11 districts, can pair with neighbors\n",
    "countyADP[30] = countyPop[30]/7.00\n",
    "print(\"the revised avgDistrictPop for\",cList,\"are\",[int(countyADP[c]) for c in liveCountyList])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "976bad94-fde1-4c12-a9bc-4cbdbbc759b8",
   "metadata": {},
   "outputs": [],
   "source": [
    "#see vanillaHD-OH for county clusters; code block deleted here\n",
    "CCBlist, CCBpop, CCBgeom, allFusedCounties = list(), list, list(), list()\n",
    "unitCounties, borderCounties = list(), list()\n",
    "borderCounties = liveCountyList.copy()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "a82a8cda-c145-4528-ac11-9432aa3bb071",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1446\n"
     ]
    }
   ],
   "source": [
    "print(len(populatedTractList))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "e0ff719c-59dc-4827-a522-11bd352f7524",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "For this state, do we have a lot of populated fragmented VTDs?\n",
      "93 fragmented VTDs out of 1446\n"
     ]
    },
    {
     "data": {
      "image/png": "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P/mT9Pjjj6eIOOoDDB966KFUXV2dli1bln72s5+lT37yk2nUqFHpzTffLI6ZPn16mjBhQlq3bl36l3/5lzRmzJh0yy23FPc3NzenmpqadOutt6YtW7akxx57LPXv3z9997vfzXU3O+x46zJz5sw0ffr0ksfQ66+/XjKmJ67LtGnT0qJFi9KWLVvSpk2b0ic+8Yk0YsSItH///uKYcnz//Nd//VcaMGBAmjNnTnrhhRfSt7/97dS7d++0fPnyrPf3RJ3IunzsYx9Ld9xxR8ljprm5ubi/J65LSin9wz/8Q3rqqafSf/7nf6atW7em+++/P/Xt2zdt2bIlpXRmPl46Q7eLj8suuyzNmjWrePnw4cOprq4uNTY2duGsOtf8+fPThAkT2t23d+/e1Ldv3/SjH/2oeN0vf/nLFBFp7dq1KaV3fjH16tUrNTU1FccsXLgwVVVVpdbW1k6de2d69y/Ztra2VFtbm77xjW8Ur9u7d28qFArpscceSyml9MILL6SISP/+7/9eHPP000+nioqK9D//8z8ppZS+853vpLPPPrtkbe677740duzYTr5H5XGs+LjuuuuO+TVnwrqklNJrr72WIiKtXr06pVS+75977703XXzxxSW3ddNNN6Vp06Z19l0qi3evS0rvxMcf//EfH/NrzoR1OeLss89O3/ve9zxeyqhbvezy1ltvxcaNG2Pq1KnF63r16hVTp06NtWvXduHMOt9LL70UdXV1MXr06Lj11ltj586dERGxcePGOHToUMmaXHTRRTFixIjimqxduzYuueSSkk8anjZtWrS0tMQvfvGLvHekE+3YsSOamppK1qK6ujomTZpUshaDBg2KD3/4w8UxU6dOjV69esX69euLYyZPnhyVlZXFMdOmTYutW7fG//3f/2W6N+W3atWqGDZsWIwdOzbuuuuu2LNnT3HfmbIuzc3NERExePDgiCjf98/atWtLjnFkTHf5ufTudTnihz/8YQwZMiTGjRsX8+bNizfeeKO470xYl8OHD8eSJUviwIED0dDQ4PFSRl3+qbYd8etf/zoOHz5c8h81IqKmpiZefPHFLppV55s0aVIsXrw4xo4dG6+++mo8+OCDceWVV8aWLVuiqakpKisrj/ok4JqammhqaoqIiKampnbX7Mi+nuLIfWnvvv7mWgwbNqxkf58+fWLw4MElY0aNGnXUMY7sO/vssztl/p1p+vTp8alPfSpGjRoV27dvj/vvvz9mzJgRa9eujd69e58R69LW1hZ33313XH755TFu3LiIiLJ9/xxrTEtLS7z55pvRv3//zrhLZdHeukREfPrTn46RI0dGXV1dbN68Oe67777YunVrPP744xHRs9fl5z//eTQ0NMTBgwfjrLPOiqVLl8YHPvCB2LRp0xn/eCmXbhUfZ6oZM2YU/z1+/PiYNGlSjBw5Mv7u7/7ujHiQcupuvvnm4r8vueSSGD9+fJx//vmxatWqmDJlShfOLJ9Zs2bFli1b4rnnnuvqqZxWjrUud955Z/Hfl1xySQwfPjymTJkS27dvj/PPPz/3NLMaO3ZsbNq0KZqbm+Pv//7vY+bMmbF69equnlaP0q1edhkyZEj07t37qDOLd+/eHbW1tV00q/wGDRoUF154YWzbti1qa2vjrbfeir1795aM+c01qa2tbXfNjuzrKY7cl/d6fNTW1sZrr71Wsv/tt9+O119//Yxar9GjR8eQIUNi27ZtEdHz12X27Nnx5JNPxrPPPhvnnntu8fpyff8ca0xVVdVp/T8Ix1qX9hz5bK7ffMz01HWprKyMMWPGxMSJE6OxsTEmTJgQf/EXf3HGP17KqVvFR2VlZUycODFWrFhRvK6trS1WrFgRDQ0NXTizvPbv3x/bt2+P4cOHx8SJE6Nv374la7J169bYuXNncU0aGhri5z//eckvl2eeeSaqqqriAx/4QPb5d5ZRo0ZFbW1tyVq0tLTE+vXrS9Zi7969sXHjxuKYlStXRltbW/GHa0NDQ6xZsyYOHTpUHPPMM8/E2LFjT/uXFk7UK6+8Env27Inhw4dHRM9dl5RSzJ49O5YuXRorV6486mWjcn3/NDQ0lBzjyJjT9efS8dalPZs2bYqIKHnM9LR1OZa2trZobW09Yx8vnaKrz3jtqCVLlqRCoZAWL16cXnjhhXTnnXemQYMGlZxZ3NN84QtfSKtWrUo7duxI//qv/5qmTp2ahgwZkl577bWU0jtv/RoxYkRauXJl2rBhQ2poaEgNDQ3Frz/y1q+rr746bdq0KS1fvjwNHTq0W77Vdt++fen5559Pzz//fIqI9PDDD6fnn38+/fd//3dK6Z232g4aNCg98cQTafPmzem6665r9622v/3bv53Wr1+fnnvuuXTBBReUvKV07969qaamJv3e7/1e2rJlS1qyZEkaMGDAaf2W0vdal3379qUvfvGLae3atWnHjh3pJz/5SfrQhz6ULrjggnTw4MHiMXriutx1112puro6rVq1quQto2+88UZxTDm+f468dfKee+5Jv/zlL9OCBQtO67dOHm9dtm3blr761a+mDRs2pB07dqQnnngijR49Ok2ePLl4jJ64LimlNHfu3LR69eq0Y8eOtHnz5jR37txUUVGR/vmf/zmldGY+XjpDt4uPlFL69re/nUaMGJEqKyvTZZddltatW9fVU+pUN910Uxo+fHiqrKxM73//+9NNN92Utm3bVtz/5ptvpj/6oz9KZ599dhowYEC64YYb0quvvlpyjJdffjnNmDEj9e/fPw0ZMiR94QtfSIcOHcp9V07Zs88+myLiqG3mzJkppXfebvvAAw+kmpqaVCgU0pQpU9LWrVtLjrFnz550yy23pLPOOitVVVWlz3zmM2nfvn0lY372s5+lK664IhUKhfT+978/PfTQQ7nu4kl5r3V544030tVXX52GDh2a+vbtm0aOHJnuuOOOo4K9J65Le2sSEWnRokXFMeX6/nn22WfTBz/4wVRZWZlGjx5dchunm+Oty86dO9PkyZPT4MGDU6FQSGPGjEn33HNPyd/5SKnnrUtKKf3BH/xBGjlyZKqsrExDhw5NU6ZMKYZHSmfm46UzVKSUUr7nWQCAM123OucDAOj+xAcAkJX4AACyEh8AQFbiAwDISnwAAFmJDwAgK/EBAGQlPgCArMQHAJCV+AAAsvp/5PsFnrrHZUQAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "FYI, here are the locations of fragmented VTDs with pop > 3000\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiwAAAGdCAYAAAAxCSikAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAypUlEQVR4nO3de3RV9Z3//9fe55rbOUkgEClBvFAEbarghWhn2iWI5dcips4wi0VHx7pWRwqKqB3IYrTfdtrClFUv7UwZ7IXRX8tihnZoqzOI1tQLShGwdCgs0V/qr6USCCHJOeEkObf9+f4RiUaScE4unH2S52OtsyT77P3Z7+3mcF7Zn8/+bMsYYwQAAOBidq4LAAAAOBcCCwAAcD0CCwAAcD0CCwAAcD0CCwAAcD0CCwAAcD0CCwAAcD0CCwAAcD1vrgsYLo7j6NixYyopKZFlWbkuBwAAZMAYo/b2dk2aNEm23f91lFETWI4dO6aqqqpclwEAAAbh6NGjmjx5cr/vj5rAUlJSIqn7gEOhUI6rAQAAmYhGo6qqqur5Hu/PqAksZ7qBQqEQgQUAgDxzruEcDLoFAACuR2ABAACuR2ABAACuR2ABAACuR2ABAACuR2ABAACuR2ABAACuR2ABAACuR2ABAACuR2ABAACuR2ABAACuR2ABAACuR2ABAACuN2qe1gwAGJuiJ5uUTqd6LzRGHp9fwaIi+YIF53wSMNyPwAIAyGtOOq2yyklnLU8lEop3xBSLtEnGSH2FFmO6/ztAoLFtj/wFBfIFC+Txegk/OUJgAQDkNSPT53Kv3y+v368ilQ2p/XQqqWRXXB2RVqWTyQHDzftFfSgIfSAw2bZHgcIi+QsLZNueIdU2lhBYAAAYgMfrk6fYp2Bx8bC0l06lFO+IKXrypIyT7l6Y5VUby7LlLyhQoLBIHu/Y+CofG0cJABi1LOVXF43H61VhKKzCUHjQbTjptBKdnTrdckqOkz6ry+vD/0/OXIU6s9zIyOvzK1BYmDdjfAgsAADkGdvjUbC4eNBXfYwxSiUTSnR0qCMS6bdbrWd9x1Fx+Tj5gwWD2t9wILAAADDGWJYlnz8gnz+Q0fpdp093j9/JYWBhHhYAADCgRGeH/AWFOa2BwAIAAAbkpNM5H9xLYAEAAK5HYAEAAK7HoFsAgKs1/+n/l/e9waEfvJvlzC26ls3v3mMBgQUA4Goen0+llRfkugzkGLEUAAAM6FzztJwPBBYAAOB6BBYAAOB6BBYAgLvlwXNuMPIILAAAwPUILAAAwPUILAAA13LSadnMswIRWAAALtYVO61AUXGuy4ALEFgAAK6V6OhQIMdPCYY7EFgAAK5lZJh6H5IILAAAYACOk5Zl5T4u5L4CAAD6Y3I/JfxYl+zqkr+gINdlEFgAAED/4h0d8gcJLAAAwMXSqaS8fn+uyyCwAACAAbikW86b6wIAAGNPKplU9OSJ9+8AMqb7mUHGyLJs+QsK5KTTSsbjuS0UrkFgAQCcd+2nTqrsgo/I6uPBho6TVrKrS75gUEWlZTmoDr245OGTdAkBAM67wlBY7aea+3zPtj0KFBbJFwgyBwt68DcBAHDeBQqLlEokcl0G8giBBQBw3jlOWpbtjq4G5AcCCwDgvIs0nVDphMpcl4E8QmABAJx3Hq9XsbbWXJeBPEJgAQCcd6HxE5RMcMsyMkdgAQDkhHHcMSEZ8gOBBQCQEy6Z3gN5gsACAABcb0iBZf369bIsS/fdd1/Psq6uLi1fvlzjxo1TcXGxbrvtNp04cWLAdowxevjhh3XBBReooKBA8+bN09tvvz2U0gAAwCgy6MCyd+9ebdq0SdXV1b2Wr1q1Sk8//bS2bduml156SceOHdPnPve5Adv61re+pe985zv6t3/7N+3Zs0dFRUW6+eab1dXVNdjyAAAu55Jn6mEAqUTCFU9qlgYZWE6fPq2lS5fq+9//vsrK3n/OQyQS0Q9/+EM98sgjuvHGGzV79mxt3rxZr732mn7zm9/02ZYxRo899pj+8R//UYsWLVJ1dbWeeuopHTt2TD//+c8HdVAAAPcyxuh0yyk56VSuS8E5xDtiChQW5boMSYMMLMuXL9dnPvMZzZs3r9fy/fv3K5lM9lp+2WWXacqUKdq9e3efbb3zzjs6fvx4r23C4bCuu+66freRpHg8rmg02usFAHC/tuPH5A0ENG7ylFyXgnNIdHXKFwjmugxJgwgsW7du1RtvvKF169ad9d7x48fl9/tVWlraa/nEiRN1/PjxPts7s3zixIkZbyNJ69atUzgc7nlVVVVleSQAgFworZyk9uaTfT6pGe7jlvOUVWA5evSoVq5cqZ/85CcKBnObuOrq6hSJRHpeR48ezWk9AIDMWJalorJydUTacl0KzsGSO8KKlGVg2b9/v5qamjRr1ix5vV55vV699NJL+s53viOv16uJEycqkUiora2t13YnTpxQZWXfz4w4s/zDdxINtI0kBQIBhUKhXi8AQH4oDIXVebpd6RTjWNzMyD0jo7MKLHPnztXBgwd14MCBntfVV1+tpUuX9vzZ5/PphRde6NnmyJEj+tOf/qSampo+27zoootUWVnZa5toNKo9e/b0uw0AIP+VT5qslne5Oo7MeLNZuaSkRFdccUWvZUVFRRo3blzP8rvuukv333+/ysvLFQqFdM8996impkZz5szp2eayyy7TunXrVFtb2zOPy9e//nVNmzZNF110kR566CFNmjRJt95669CPEADgSpZlyePzyXHSsm1PrsuBy2UVWDLx6KOPyrZt3XbbbYrH47r55pv1ve99r9c6R44cUSQS6fn5H/7hHxSLxfTFL35RbW1t+sQnPqFnn3025+NkAAAjxziOnFSKsOJibhrDYhkzOqbuiUajCofDikQijGcBgDzRcuzPKp80OddloB9txxtVWnnBiO4j0+9vniUEAMgZy+ZryK1O/vEdV50f91QCABhTUomE0snked3nj37/Ix0+dVixZEyjpINhxHgDAYUnTDz3iufJsI9hAQAgEx6vV8muLsU7OhQoLDwv+3x0/6M9fw75ytRydIG+dPVfaemcC1Ve5I5n5riBk07LdtHVFYkrLACAHLFsW+OqpiiViOdk/9FkqxzfH/Xt59/SEy//ISc1uFW8s0P+gvMTIjNFYAEA5IzX71esrVXGcc77vtNdlUq2XaubL5+oJdfyeJcPSrjooYdn0CUEAMgZ2/aoYspUtTS+q3EfGfnQUOwr1t/O/Ftt/N1GfenaRVp+5Z2ueVaOmziOI9vjrtvNucICAMipyMkmlU4c2Vtnz7BkqdDb3dWx6X83qfqparV0tZyXfWNoCCwAgJzyFxQoHjs94vsxxijpJOX50ER1R1qOjPi+MXR0CQEAcqowFFbbiePy+EZ23MTvTv5OXekutcXbJElrrl2j6vHV+ljFx0Zsnxg+XGEBAORc6cRKnW45pWS8a8T24bG6r6y82fx7SdKswATCSh4hsAAAXGHc5CmKNp8csfbPhJOXj70mnzGa8vN7R2xf+SLeEVM6dX4n7xssuoQAAK4xkrc3G2NUHixXW1ebHjHlKvqrdcPWdqq1VZZtyxMOD1ub50Ok6YSCRcVKp1NyUmnZ3u6rUJblvusZBBYAgGuUjBuvWFurikrLhr1ty7L0TO0zsi1bRb6hjZVJnz4ty+eTHQjIGKO3a67veS8wbZoKr7laEx96yPW3TPuCQYUqJuS6jIwQWAAArhEoLNLp1pYRCSySVOIvGXIbqVOn9PYNn+j52X/hhb3ej7/9tuJvv62Ja9dKLpvLJJ8RWAAAruCk0zr17lGVTqjMdSkDSkejvX5O/PGPvX4Ofuxj8o4fL4uwMqzc10kFABhzOk+3q7XxXY2vulC+YDDX5QzILurdneSd1HvSu/hbb6nw2mvPZ0mD4jhpV45V6U/+VAoAGJUiTceVisc1bvIU14/5kCTfhAm69Nf1PT+njjX2et/E4yq6/voPb+Y6ic5O+QsKcl1GxugSAgDkRCqRUNvxYwpVTHDdk4HPqZ+7mfyXXiLfhIkKTv/oeS4oe4nOjhEbKzQSuMICAMiJyMkTGj9lav6FFUneSZPOWuYpL1fyWKOKrq/JQUXZc1Jpeby+XJeRMQILACAnbDt/v4I6DxzQpA0bNGH1atnFxZKkyocflunokB0K5bi6zLUeP6a2442KtbUqlXT3BHJ0CQEAkKV3H3igZ+yKt6JChbNnq+Tm+QrOnKmO1/eqbPHiHFd4bqWV3YOFjTFKxrt0ouFtfeSymTmuqn/5G28BAHnPGJPrErLmxOO9BtqmTp5U5Vf/jyzLUtFf/oVir7wik0rlsMLsWJYlf7BAhaWluS5lQAQWAEBOeP0BpZKJXJeRkXffatWP/mGX9v7skBr+6m/Oet9X2T13TMm8m5SORPT/3TRfsd27z3eZoxqBBQCQE4HCQiU6OnJdRkae3fR7dUYTev35Ezrg+0S/6wUvn6lJG76lVGOjut48ch4rHP0ILACAnPAFgkp2deW6jIx8YcMndPX/M1WSVHz6z7IKC1Vw1VWyQ6FedwVZliUrEJAkFdXMyUWpg2bJ3XPgMOgWAJATlm3LKD/GsFi2petuuVhXXeXTyUc98oy/TeOXLdOxBx7suSuoY98+tTz5lNrr61V4zTUKXnZZjqvOjtvPBYEFAIAM+auq9JFHvt3zc7q9Xb6PTFLn//6v/njnFxS45BIVXnONJtbV5bDK0YnAAgDAIHlKitVe/2t1HvidAlMv1EX/+R+y/P5clzUobu8SYgwLAACDNOlb31Lgo9MUf/tt+S68MG/DikSXEAAAo5Z3/HhN+cEP1PLU/yv/lKpclzOqEVgAABgCy+PRuDv/LtdlDBldQgAAwNWMMa7vEiKwAAAwxqWSCXl97h5/Q2ABAGCMS3Z1yRcI5rqMARFYAAAY4xKdnfIXFuS6jAERWAAAGOOMcWTbnlyXMSACCwAAcD0CCwAAcD0CCwAAcD0CCwAgZyxZMo6T6zKQBwgsAICc8QWDSnR15boM5AECCwAgZ/yFhUp0duS6DOQBAgsAIGe8Pr9SiXiuyxjz3P4cIYnAAgDIIcty/xcl3IHAAgDILUILMkBgAQBgDDGOo+SHuuHc/qRmSfLmugAAwNiWD+MnRpNo80lJkuOku28rl1GwqDjHVZ0bgQUAgDHEcdIqq5yU6zKyRpcQACCn8qE7YjTJ1ytaWQWWjRs3qrq6WqFQSKFQSDU1NdqxY0fP+w0NDaqtrVVFRYVCoZAWL16sEydODNhmOp3WQw89pIsuukgFBQW65JJL9E//9E8yhr/AADBWtB4/1vNqO96otuONPX/uiLQplUzmukTkWFZdQpMnT9b69es1bdo0GWP05JNPatGiRfrtb3+rqVOnav78+fr4xz+u+vp6SdJDDz2khQsX6je/+Y1su+9s9M///M/auHGjnnzySV1++eXat2+f7rzzToXDYd17771DP0IAgKsN1D1hHEeJrk51RFqVTqUkY866qyiTKwZGRpYs2R6PfMGgfMECebxebqvOI5YZ4qWM8vJybdiwQVVVVVqwYIFaW1sVCoUkSZFIRGVlZXruuec0b968Prf/7Gc/q4kTJ+qHP/xhz7LbbrtNBQUF+vGPf5xxHdFoVOFwWJFIpGf/AAB8UDqVUjLepWRXl9LvXbU5E2bO/Hkgfa33wWU+f0CBoiJ5/QHXhqHW48dcNYYl0+/vQQ+6TafT2rZtm2KxmGpqatTQ0CDLshQIBHrWCQaDsm1bu3bt6jewXH/99XriiSf01ltv6aMf/ah+97vfadeuXXrkkUcG3H88Hlc8/v5tWdFodLCHAgAYIzxerzze4hG5K8YYo1QirnhHh2Ktrede/8Ohx7IUKCpSoLBQtu0Z9vryXdaB5eDBg6qpqVFXV5eKi4u1fft2zZw5UxUVFSoqKtLq1av1zW9+U8YYrVmzRul0Wo2Njf22t2bNGkWjUV122WXyeDxKp9P6xje+oaVLlw5Yx7p16/TVr3412/IBABgRlmXJFwjKFwgOanvjOIp3dKi9+aSMY8662vPBrq8PvxcoLFKwqFi2Z/QGnawDy/Tp03XgwAFFIhH99Kc/1R133KGXXnpJM2fO1LZt27Rs2TJ95zvfkW3bWrJkiWbNmtXv+BVJ+s///E/95Cc/0ZYtW3T55ZfrwIEDuu+++zRp0iTdcccd/W5XV1en+++/v+fnaDSqqqqqbA8HAABXsGxbweJiBYuzu/pzZpxP+6lmGcc5Z7eWcZyhlJkzQx7DMm/ePF1yySXatGlTz7Lm5mZ5vV6VlpaqsrJSDzzwgL785S/3uX1VVZXWrFmj5cuX9yz7+te/rh//+Md68803M66DMSwAAOSfER/DcobjOL3GkkjS+PHjJUn19fVqamrSLbfc0u/2HR0dZ12B8Xg8cvI0AQIAgOGXVWCpq6vTggULNGXKFLW3t2vLli168cUXtXPnTknS5s2bNWPGDFVUVGj37t1auXKlVq1apenTp/e0MXfuXNXW1mrFihWSpIULF+ob3/iGpkyZossvv1y//e1v9cgjj+gLX/jCMB4mAADIZ1kFlqamJt1+++1qbGxUOBxWdXW1du7cqZtuukmSdOTIEdXV1amlpUVTp07V2rVrtWrVql5tNDQ0qLm5uefn7373u3rooYf0pS99SU1NTZo0aZL+/u//Xg8//PAwHB4AABgNhjyGxS0YwwIAQP7J9PubZwkBAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXI7AAAADXyyqwbNy4UdXV1QqFQgqFQqqpqdGOHTt63m9oaFBtba0qKioUCoW0ePFinThx4pztvvvuu/r85z+vcePGqaCgQB/72Me0b9++7I8GAACMSlkFlsmTJ2v9+vXav3+/9u3bpxtvvFGLFi3SoUOHFIvFNH/+fFmWpfr6er366qtKJBJauHChHMfpt83W1lbdcMMN8vl82rFjhw4fPqxvf/vbKisrG/LBAQCA0cEyxpihNFBeXq4NGzaoqqpKCxYsUGtrq0KhkCQpEomorKxMzz33nObNm9fn9mvWrNGrr76qV155ZShlKBqNKhwOKxKJ9OwfAAC4W6bf34Mew5JOp7V161bFYjHV1NQoHo/LsiwFAoGedYLBoGzb1q5du/pt55e//KWuvvpq/fVf/7UmTJigq666St///vfPuf94PK5oNNrrBQAARqesA8vBgwdVXFysQCCgu+++W9u3b9fMmTM1Z84cFRUVafXq1ero6FAsFtODDz6odDqtxsbGftv7wx/+oI0bN2ratGnauXOnli1bpnvvvVdPPvnkgHWsW7dO4XC451VVVZXtoQAAgDyRdZdQIpHQn/70J0UiEf30pz/VD37wA7300kuaOXOmnnvuOS1btkzvvPOObNvWkiVLdPjwYV177bXauHFjn+35/X5dffXVeu2113qW3Xvvvdq7d692797dbx3xeFzxeLzn52g0qqqqKrqEAADII5l2CXmzbdjv9+vSSy+VJM2ePVt79+7V448/rk2bNmn+/PlqaGhQc3OzvF6vSktLVVlZqYsvvrjf9i644ALNnDmz17IZM2boZz/72YB1BAKBXt1PAABg9Mo6sHyY4zi9rnRI0vjx4yVJ9fX1ampq0i233NLv9jfccIOOHDnSa9lbb72lCy+8cKilAQCAUSKrwFJXV6cFCxZoypQpam9v15YtW/Tiiy9q586dkqTNmzdrxowZqqio0O7du7Vy5UqtWrVK06dP72lj7ty5qq2t1YoVKyRJq1at0vXXX69vfvObWrx4sV5//XU98cQTeuKJJ4bxMAEAQD7LKrA0NTXp9ttvV2Njo8LhsKqrq7Vz507ddNNNkqQjR46orq5OLS0tmjp1qtauXatVq1b1auNMl9EZ11xzjbZv3666ujp97Wtf00UXXaTHHntMS5cuHYbDAwAAo8GQ52FxC+ZhAQAg/4z4PCwAAADnC4EFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4HoEFAAC4XlaBZePGjaqurlYoFFIoFFJNTY127NjR835DQ4Nqa2tVUVGhUCikxYsX68SJExm3v379elmWpfvuuy+bsgAAwCiXVWCZPHmy1q9fr/3792vfvn268cYbtWjRIh06dEixWEzz58+XZVmqr6/Xq6++qkQioYULF8pxnHO2vXfvXm3atEnV1dWDPhgAADA6WcYYM5QGysvLtWHDBlVVVWnBggVqbW1VKBSSJEUiEZWVlem5557TvHnz+m3j9OnTmjVrlr73ve/p61//uq688ko99thjWdURjUYVDocViUR69g8AANwt0+/vQY9hSafT2rp1q2KxmGpqahSPx2VZlgKBQM86wWBQtm1r165dA7a1fPlyfeYznxkw1HxYPB5XNBrt9QIAAKNT1oHl4MGDKi4uViAQ0N13363t27dr5syZmjNnjoqKirR69Wp1dHQoFovpwQcfVDqdVmNjY7/tbd26VW+88YbWrVuXVR3r1q1TOBzueVVVVWV7KAAAIE9kHVimT5+uAwcOaM+ePVq2bJnuuOMOHT58WBUVFdq2bZuefvppFRcXKxwOq62tTbNmzZJt972bo0ePauXKlfrJT36iYDCYVR11dXWKRCI9r6NHj2Z7KAAAIE8MeQzLvHnzdMkll2jTpk09y5qbm+X1elVaWqrKyko98MAD+vKXv3zWtj//+c9VW1srj8fTsyydTsuyLNm2rXg83uu9gTCGBQCA/JPp97d3qDtyHEfxeLzXsvHjx0uS6uvr1dTUpFtuuaXPbefOnauDBw/2WnbnnXfqsssu0+rVqzMOKwAAYHTLKrDU1dVpwYIFmjJlitrb27Vlyxa9+OKL2rlzpyRp8+bNmjFjhioqKrR7926tXLlSq1at0vTp03vamDt3rmpra7VixQqVlJToiiuu6LWPoqIijRs37qzlAABg7MoqsDQ1Nen2229XY2OjwuGwqqurtXPnTt10002SpCNHjqiurk4tLS2aOnWq1q5dq1WrVvVqo6GhQc3NzcN3BAAAYNQb8hgWt2AMCwAA+WfE52EBAAA4XwgsAADA9QgsAADA9QgsAADA9QgsAADA9QgsAADA9QgsAADA9QgsAADA9QgsAADA9QgsAADA9QgsAADA9QgsAADA9QgsAADA9QgsAADA9QgsAADA9QgsAADA9QgsAADA9QgsAADA9QgsAADA9by5LgBDl2rrkkk6sixLsiQZyUjylPhlBzy5Lg8AgCEjsOS55MkOeUsDsny9g4kxRk57Uqn2RPcC60Mbmj4asyRPyH9WWwAA5BqBJQPJpg5Z9nvf+P198VvqOwSMMMtn9xkwLMuSJ+TPqi3jGDntCZlkd8gxeu9wvbZsvy2nI3XWIdo+W55wYFC1AwCQKQJLBiyPJe+4glyXMeIs2+ozfJhkWk5nWt7xZ/8/cBJpJZs7u7c/E+bMB8LO+4ve30fIL8vL8CkAQOYILDgny+eRp59uItvvkd1HkOmPSTtKRxNSuo/LUR+8SvXen+2QX7afLioAGOsILJnIQVfPaGV5bHnLghmta4yRE00oFU30Wm4X+2QHz/6ra0z3ibKsD/fbAQDyHYEFrmVZZ3dRGWPkxJJKvdcNlVlDOit0Wn5bdomfcAMAeYLAgrxiWZY8xX6peGjtOIm00i1dvYOMbclbntnVHwDA+UVgwZhk+z2yPzCQOt2ekOVjIDAAuBX/QgOSnHiawAIALsa/0IAk77ig0m1xpVq6cl0KAKAPBBZA3WNjvOMKZBLpXJcCAOgDgSUD3NU8NjidKdnFvlyXAQDoA4ElA9z4OjakY8nuO5AAAK5DYMkEiWXUczpTUsrJdRkAgH5wWzPGPKcjKacrLV9lUa5LAQD0gyssGNOcrpTSsSQTxgGAy3GFBWNWqi0uychXUZjrUgAA50BgwZiTPp2QE0vKEwrILuAjAAD5gC4hjCnJpg5ZtiXfxCLCCgDkEQILxox0LCm7yCe7kLlWACDfEFgwZpjOlDxFhBUAyEcEFowZxjBnMQDkKzrxMeqlInGZpCPLSz4HgHxFYMGolo4lJSP5xhfkuhQAwBAQWDBqpaNxGSN5SwO5LgUAMERcI8eo5HQku8NKmLACAKMBgSUTjNXMOyZtOG8AMIoQWDAqeUr8Msl0rssAAAwTAgtGLU+RT+nTibOWm6QjJ06YAYB8klVg2bhxo6qrqxUKhRQKhVRTU6MdO3b0vN/Q0KDa2lpVVFQoFApp8eLFOnHixIBtrlu3Ttdcc41KSko0YcIE3XrrrTpy5Mjgjgb4ALvQJ6cj1WtZqrlT6WhcTizZfQcRACAvZBVYJk+erPXr12v//v3at2+fbrzxRi1atEiHDh1SLBbT/PnzZVmW6uvr9eqrryqRSGjhwoVyHKffNl966SUtX75cv/nNb/T8888rmUxq/vz5isViQz44wC7yKdncqdR7L09pQN5xBfKWB+UQWAAgb1hmiNN/lpeXa8OGDaqqqtKCBQvU2tqqUCgkSYpEIiorK9Nzzz2nefPmZdTeyZMnNWHCBL300kv6y7/8y4zriEajCofDikQiPfsfLqnmTnmZx2PUceJpOZ0pbnsGgBzK9Pt70GNY0um0tm7dqlgsppqaGsXjcVmWpUDg/X/8g8GgbNvWrl27Mm43EolI6g5CA4nH44pGo71eQDbsgEcm1f/VPwCAe2QdWA4ePKji4mIFAgHdfffd2r59u2bOnKk5c+aoqKhIq1evVkdHh2KxmB588EGl02k1NjZm1LbjOLrvvvt0ww036Iorrhhw3XXr1ikcDve8qqqqsj0UjHFOV0q235PrMgAAGcg6sEyfPl0HDhzQnj17tGzZMt1xxx06fPiwKioqtG3bNj399NMqLi5WOBxWW1ubZs2aJdvObDfLly/X73//e23duvWc69bV1SkSifS8jh49mu2hYAwzxijV0iVPyJ/rUgAAGch6an6/369LL71UkjR79mzt3btXjz/+uDZt2qT58+eroaFBzc3N8nq9Ki0tVWVlpS6++OJztrtixQo988wzevnllzV58uRzrh8IBHp1PwHZSJ3slK+yKNdlAAAyNORnCTmOo3g83mvZ+PHjJUn19fVqamrSLbfc0u/2xhjdc8892r59u1588UVddNFFQy0J6JOTSMs5nZQ8luygR5Zt5bokAECGsgosdXV1WrBggaZMmaL29nZt2bJFL774onbu3ClJ2rx5s2bMmKGKigrt3r1bK1eu1KpVqzR9+vSeNubOnava2lqtWLFCUnc30JYtW/SLX/xCJSUlOn78uCQpHA6roIA7czB8nGhCnrKATDwtu9CX63IAAFnIKrA0NTXp9ttvV2Njo8LhsKqrq7Vz507ddNNNkqQjR46orq5OLS0tmjp1qtauXatVq1b1auNMl9EZGzdulCR96lOf6rXe5s2b9Xd/93eDOCSgH5ZkeWxZhUzwDAD5ZsjzsLgF87DgXJInYrKCXp7gDAAuMuLzsAB5x4iwAgB5isCCscPDIFsAyFcEFowZdoG3z6c3AwDcj8CCMcGkjdLRhOzgkO/kBwDkAP96Y0xIt3XJV1nE3CsAkKe4woIxwRgRVgAgjxFYMCYQVQAgvxFYMCaMismGAGAMYwzLCHI6kkp3pCRjZHlteUoDsix+1wcAIFsElhGSOtUpy+eR770Zck3SUaq5U5LkLQ3K8nFx63wiJgJAfiOwjIBUc6fsEp/swPv/ey2fLV9FoSQp2dwpO+iRp9ifqxIBAMgr/Jo/zFJtXbILvb3Cyof5xhd0zwvSziRmAABkgsAyjNKxpCzbll3oO+e63nBAJunI6Uydh8oAAMhvBJZh5JxOyBPKvJvHWx5UOhofwYoAABgdCCzDJHWqU97ygqy385YHlTrVOQIV4QyTdiQmjQOAvEZgGQZOIi1Z1qDu/LF8HsmyutvAiEifTspTwgBnAMhn3CU0DNKtXfJNLBr09t7yoJJNHbInFA5jVbnhdKW6BxOfmW/GMfKUBmT7PbkrKulwGzkA5DkCyxClI3F5QoEht+MJ+ZWKxOUND72tXEm1dEm21XP79geXO3ZS3tJgjioDAOQ7fu0cJGOMUqc6ZYyRXTD03GcHvTLxtIyTn5PIp1q6b+f2lp4duLzlQVk+j1IRBhgDAAaHKyxZMI5RurWrJ1R4y4OyPMOX+bwVBUqd7JQvz7qG0rGkLI8lO9j/XydPka874NE9AwAYBAJLhtLRhJx4St7yAlmekbnjxLIs2QGPnK7UgF/+buPEkhmFLO+4AiWbOvIukAEAco9fdTPQfVus5KsoHLGwcoYnHFA6j7pO0tF4VnPP2AVeOR3JEawIADAaEVgy4JtYdF6f++MpCyp5PCaTcs7bPs8waSfjW6ydjqRM0snqapCnxK90jMACAMhO/vQ7jCG23yO7skiplvfHy1iSjN4bNzMCk6AZY5Q60SHL75HlsZRs7ZJd6Ot3/pJ0LCkTT8s7LvvJ8npueQYAIEMEFhfzlve+Ddg43XcmWbY1uKAwgFRTh7wVBT2DiD3hgNKxpJInYvKUBWX7PTLGyIkm5CTSsgPes+pzIyeekhXI4RwwAIBhQWDJI9Z7c5w4ifSwDl5NtydkF/nOuuPJU+TrvruntUvpaEKWJdklfvmGOFfM+by+4pxOylPm/mAFABgYgSUP2X6PFPJ3P79oiFdaTKr7idEDhR/vMH/hn9eZZoxGpAsNAHB+Meg2T9lBryy/R+loYtBtOF0ppU7lYN4Xk5+T4wEAcofAksc8JX4Zx1H6dOahxRijVGuXks2d3VdWhvAMpMGyGHQLAMgSXUJ5zlsaVKq1a8DnEBljlD7V1dMV4y0NyPLmLqtyfQUAkC0CyyjgLQvK6UopebJD0geuYNhW923RaUfe8SM/6V2m3FEFACCfEFhGCTvo7TWBmzFGcuSakAIAwFAwhmWUsizLtWHFLvZlNe4GAAACC847O+iV6cps+v+hMI6h/wkARgkCC0YtJ5aUXeTLdRkAgGFAYEFOGMfIpEf2fiETT2f1YEYAgHsRWJAT3vKgTr/6bvfgYAAAzoHAgpywvLYKPjZeqaaOEb/SAgDIf1wvR854y4LdM+82d0qWJe+4ILPgAgD6RGBBTllW9xOoTdoodapLMkaWZXXPhvven6Xu2XHtgEeeEn8uywUA5AiBBa5geSz5xg/85GknnlKqufP9RwyUB3kSMwCMEQQW5A074JUd6P4raxyj1KlOSd3PU7J8DMcCgNGMwIK8ZNndXUmSlGrpkkk7PT8DAEYffi1F3vOWB+UtCyp5PCYnnpIkmZQjeekuAoDRgissGBUsry1fZZFSpzplko5M0mGALgCMIlxhwajiHVcgkzJKRxOyvPz1BoDRgissGHW8pQEp5eS6DADAMOJXUIxK3nPcIg0AyC8EFgAA4HpZBZaNGzequrpaoVBIoVBINTU12rFjR8/7DQ0Nqq2tVUVFhUKhkBYvXqwTJ06cs91//dd/1dSpUxUMBnXdddfp9ddfz/5IAADAqJVVYJk8ebLWr1+v/fv3a9++fbrxxhu1aNEiHTp0SLFYTPPnz5dlWaqvr9err76qRCKhhQsXynH6H0/wH//xH7r//vv1la98RW+88YY+/vGP6+abb1ZTU9OQDw4AAIwOljFmSI/KLS8v14YNG1RVVaUFCxaotbVVoVBIkhSJRFRWVqbnnntO8+bN63P76667Ttdcc43+5V/+RZLkOI6qqqp0zz33aM2aNRnXEY1GFQ6HFYlEevYPAADcLdPv70GPYUmn09q6datisZhqamoUj8dlWZYCgUDPOsFgULZta9euXX22kUgktH///l5hxrZtzZs3T7t37x5w//F4XNFotNcLAACMTlkHloMHD6q4uFiBQEB33323tm/frpkzZ2rOnDkqKirS6tWr1dHRoVgspgcffFDpdFqNjY19ttXc3Kx0Oq2JEyf2Wj5x4kQdP358wDrWrVuncDjc86qqqsr2UAAAQJ7IOrBMnz5dBw4c0J49e7Rs2TLdcccdOnz4sCoqKrRt2zY9/fTTKi4uVjgcVltbm2bNmiXbHv6bkerq6hSJRHpeR48eHfZ9AAAAd8h64ji/369LL71UkjR79mzt3btXjz/+uDZt2qT58+eroaFBzc3N8nq9Ki0tVWVlpS6++OI+2xo/frw8Hs9ZdxKdOHFClZWVA9YRCAR6dT8BAIDRa8iXPhzHUTwe77Vs/PjxKi0tVX19vZqamnTLLbf0ua3f79fs2bP1wgsv9GrvhRdeUE1NzVBLAwAAo0RWV1jq6uq0YMECTZkyRe3t7dqyZYtefPFF7dy5U5K0efNmzZgxQxUVFdq9e7dWrlypVatWafr06T1tzJ07V7W1tVqxYoUk6f7779cdd9yhq6++Wtdee60ee+wxxWIx3XnnncN4mAAAIJ9lFViampp0++23q7GxUeFwWNXV1dq5c6duuukmSdKRI0dUV1enlpYWTZ06VWvXrtWqVat6tXGmy+iMv/mbv9HJkyf18MMP6/jx47ryyiv17LPPnjUQFwAAjF1DnofFLZiHBQCA/DPi87AAAACcLwQWAADgelnf1uxWZ3q2mPEWAID8ceZ7+1wjVEZNYGlvb5ckZrwFACAPtbe3KxwO9/v+qBl06ziOjh07ppKSElmWletyRr1oNKqqqiodPXqUQc55hPOWfzhn+YnzljljjNrb2zVp0qQBZ8YfNVdYbNvW5MmTc13GmBMKhfgw5iHOW/7hnOUnzltmBrqycgaDbgEAgOsRWAAAgOsRWDAogUBAX/nKV3gAZZ7hvOUfzll+4rwNv1Ez6BYAAIxeXGEBAACuR2ABAACuR2ABAACuR2ABAACuR2BBv9566y0tWrRI48ePVygU0ic+8Qn9+te/7nPdU6dOafLkybIsS21tbQO2O3XqVFmW1eu1fv36ETiCsWekzllLS4uWLl2qUCik0tJS3XXXXTp9+vQIHMHYdK7zdurUKX3605/WpEmTFAgEVFVVpRUrVpzz2Wl81kbOSJ0zPmv9I7CgX5/97GeVSqVUX1+v/fv36+Mf/7g++9nP6vjx42ete9ddd6m6ujrjtr/2ta+psbGx53XPPfcMZ+lj1kids6VLl+rQoUN6/vnn9cwzz+jll1/WF7/4xeEuf8w613mzbVuLFi3SL3/5S7311lv693//d/3qV7/S3Xfffc62+ayNjJE6Z3zWBmCAPpw8edJIMi+//HLPsmg0aiSZ559/vte63/ve98wnP/lJ88ILLxhJprW1dcC2L7zwQvPoo4+OQNVj20ids8OHDxtJZu/evT3LduzYYSzLMu++++6wH8dYk815+6DHH3/cTJ48ecC2+ayNjJE6Z3zWBsYVFvRp3Lhxmj59up566inFYjGlUilt2rRJEyZM0OzZs3vWO3z4sL72ta/pqaeeGvChVR+2fv16jRs3TldddZU2bNigVCo1EocxpozUOdu9e7dKS0t19dVX9yybN2+ebNvWnj17RuRYxpJMz9sHHTt2TP/1X/+lT37yk+dsn8/a8Bupc8ZnbWCj5uGHGF6WZelXv/qVbr31VpWUlMi2bU2YMEHPPvusysrKJEnxeFxLlizRhg0bNGXKFP3hD3/IqO17771Xs2bNUnl5uV577TXV1dWpsbFRjzzyyEge0qg3Uufs+PHjmjBhQq9lXq9X5eXlfXY1ITuZnLczlixZol/84hfq7OzUwoUL9YMf/GDAtvmsjYyROmd81gbGFZYxZs2aNWcNwvvw680335QxRsuXL9eECRP0yiuv6PXXX9ett96qhQsXqrGxUZJUV1enGTNm6POf/3xWNdx///361Kc+perqat1999369re/re9+97uKx+Mjcch5zw3nDNkbzvN2xqOPPqo33nhDv/jFL9TQ0KD7779/wBr4rGXHDecM/WNq/jHm5MmTOnXq1IDrXHzxxXrllVc0f/58tba29no0+rRp03TXXXdpzZo1uvLKK3Xw4EFZliVJMsbIcRx5PB6tXbtWX/3qVzOq6dChQ7riiiv05ptvavr06YM/uFEq1+fsRz/6kR544AG1trb2LEulUgoGg9q2bZtqa2uH6UhHl+E8b33ZtWuX/uIv/kLHjh3TBRdckFFNfNYGlutzxmdtYHQJjTEVFRWqqKg453odHR2SdNYYB9u25TiOJOlnP/uZOjs7e97bu3evvvCFL+iVV17RJZdcknFNBw4c6LmkirPl+pzV1NSora1N+/fv7+mfr6+vl+M4uu666wZ1TGPBcJ63vpx5L5urJXzWBpbrc8Zn7RxyN94Xbnby5Ekzbtw487nPfc4cOHDAHDlyxDz44IPG5/OZAwcO9LnNr3/967PuONmzZ4+ZPn26+fOf/2yMMea1114zjz76qDlw4IBpaGgwP/7xj01FRYW5/fbbz8dhjWojdc6MMebTn/60ueqqq8yePXvMrl27zLRp08ySJUtG+pDGhEzO23//93+bH/3oR+bgwYPmnXfeMc8884yZMWOGueGGG3ra4bN2/ozUOTOGz9pACCzo1969e838+fNNeXm5KSkpMXPmzDH/8z//0+/6fX35nVn2zjvvGGOM2b9/v7nuuutMOBw2wWDQzJgxw3zzm980XV1dI3w0Y8NInDNjjDl16pRZsmSJKS4uNqFQyNx5552mvb19BI9kbDnXeauvrzc1NTU9n5tp06aZ1atX81nLoZE4Z8bwWRsIY1gAAIDrcZcQAABwPQILAABwPQILAABwPQILAABwPQILAABwPQILAABwPQILAABwPQILAABwPQILAABwPQILAABwPQILAABwPQILAABwvf8LWJkDxtfht2IAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(\"For this state, do we have a lot of populated fragmented VTDs?\")\n",
    "nFragmentedVTDs,fragmentedVTDs = 0, list()\n",
    "for v in populatedTractList:\n",
    "    c = countyNo[v]\n",
    "    if c not in allFusedCounties and c not in unitCounties: \n",
    "        if vtdGeom[v].geom_type != dummyPoly.geom_type :  #a multipoly vtd-based unit\n",
    "            nFragmentedVTDs +=1\n",
    "            fragmentedVTDs.append(v)\n",
    "print(len(fragmentedVTDs),\"fragmented VTDs out of\",len(populatedTractList) ) #nVTDs)\n",
    "fragPop = [tractPop[v] for v in fragmentedVTDs]\n",
    "plt.hist(fragPop)\n",
    "plt.show()\n",
    "print(\"FYI, here are the locations of fragmented VTDs with pop > 3000\")\n",
    "for v in fragmentedVTDs:\n",
    "    if tractPop[v] > 3000:\n",
    "        plotPoly(vtdGeom[v])\n",
    "plotPoly(MAP,0.1)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "eb449f04-56c9-44ca-8fd4-1ecf173908da",
   "metadata": {},
   "outputs": [],
   "source": [
    "sdedLists = list()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "71d771f8-dbe2-48f9-a702-9f66a62d1174",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Now writing the master list of units, which may be individual vtd's (+surrounds), whole counties, or corner county clusters\n",
      "I split up 93 fragmented VTDs. Now define unit neighbor lists and fuse geometries of surrounds.\n",
      "looking for surrounds, now working on vtd 1190\n",
      "looking for surrounds, now working on vtd 1691\n",
      "looking for surrounds, now working on vtd 7187\n",
      "After surround checks, we appear to have 1755 building blocks defined. We captured 193 surrounded VTDs\n",
      "All done creating unit lists\n"
     ]
    }
   ],
   "source": [
    "#3/2/24 - split up all multipoly VTDs into fragments, divvy pop by area\n",
    "unitPop, unitCP, unitGeom, nbrUnitGeom, allUnits = list(), list(), list(), list(), list()\n",
    "vtdUnits, countyUnits, borderUnits = list(),list(),list()\n",
    "countyUnitList = [list() for c in range(nCounties) ]\n",
    "surroundedVTDs, surrounders = list(), list()  #vtds that are surrounded by another vtd - problem for later enclaves, xfer their pops to surrounders\n",
    "#These surrounded VTDs don't get transferred to the unit list\n",
    "print(\"Now writing the master list of units, which may be individual vtd's (+surrounds), whole counties, or corner county clusters\")\n",
    "for c in unitCounties:\n",
    "    unitCP.append(countyCP[c])\n",
    "    unitPop.append(countyPop[c])\n",
    "    unitGeom.append(   countyGeom[c] )\n",
    "    nbrUnitGeom.append(countyGeom[c] )\n",
    "    countyUnits.append(c)\n",
    "    allUnits.append(c+0.5)  #use non-integers to avoid vtd and county and cluster confusion\n",
    "\n",
    "nVTDneighbors = [0 for v in range(nVTDs)] #this loop -- just checking for surrounded VTDs\n",
    "lastVTDneighbor = [-999 for v in range(nVTDs)]\n",
    "\n",
    "nFragmentedVTDs,fragmentedVTDs, coastalFragmentedVTDs = 0, list(), list()  #a prev version treated coastal separately\n",
    "fragVTDgeom, parentVTDno, fragVTDpop = vtdGeom.to_list(), [v for v in range(nVTDs)], tractPop.to_list()  #these lists will expand to include vtd fragments \n",
    "origVTDgeom = vtdGeom.copy() #we create a parallel fragVTDgeom list which grabs the 1st fragment, then append fragments to the total list\n",
    "origVTDpop = tractPop.copy()\n",
    "VTDchildren = [[v] for v in range(nVTDs)]  #the list of all fragment numbers associated with the original VTD, including ones that get surrounded\n",
    "countyFragVTDset = [set(countyTractList[c]) for c in range(nCounties)]\n",
    "for v in populatedTractList:\n",
    "    c = countyNo[v]\n",
    "    if c not in allFusedCounties and c not in unitCounties: \n",
    "        if vtdGeom[v].geom_type != dummyPoly.geom_type :  #a multipoly vtd-based unit\n",
    "            nFragmentedVTDs +=1\n",
    "            fragmentedVTDs.append(v)\n",
    "            geos, areas = [geo for geo in vtdGeom[v].geoms ], [geo.area for geo in vtdGeom[v].geoms]\n",
    "            for i, geo in enumerate(geos):\n",
    "                if i == 0:\n",
    "                    fragVTDgeom[v] = geo\n",
    "                    fragVTDpop[v] = tractPop[v] * areas[i] / np.sum(areas)  #overwrite, then distribute balance below\n",
    "                else:\n",
    "                    fNo = len(fragVTDgeom)\n",
    "                    fragVTDgeom.append(geo)\n",
    "                    fragVTDpop.append( tractPop[v] * areas[i] / np.sum(areas) )\n",
    "                    parentVTDno.append(v)\n",
    "                    countyFragVTDset[c].add(fNo )\n",
    "                    VTDchildren[v].append(fNo)\n",
    "                    nVTDneighbors.append(0)\n",
    "                    lastVTDneighbor.append(-999)\n",
    "                    \n",
    "print(\"I split up\",nFragmentedVTDs,\"fragmented VTDs. Now define unit neighbor lists and fuse geometries of surrounds.\")\n",
    "\n",
    "debugV = -7616\n",
    "for kk,V in enumerate(populatedTractList):\n",
    "    if kk%500 == 0:\n",
    "        print(\"looking for surrounds, now working on vtd\",V)\n",
    "    c = countyNo[V]\n",
    "    if c not in allFusedCounties and c not in unitCounties:\n",
    "        for v in VTDchildren[V]:\n",
    "            for vv in countyFragVTDset[c].difference({v}) :\n",
    "                if isRookAdj( fragVTDgeom[vv],fragVTDgeom[v] ):\n",
    "                    nVTDneighbors[v] +=1\n",
    "                    lastVTDneighbor[v] = vv\n",
    "                    if v == debugV:\n",
    "                        print(\"I just added neighbor\",vv,\"to magicV\",v)\n",
    "                #if nVTDneighbors[v] >= 4:  #Enough to have >=2 even after surrounds.  Will do full neighbor list later\n",
    "                #    break\n",
    "            if nVTDneighbors[v] < 4:  #OK if a vtd has only 1 intracounty neighbor IF it touches another county, it's not surrounded\n",
    "                for cc in neighborCountyList[c]:\n",
    "                    if isRookAdj( fragVTDgeom[v],countyGeom[cc] ) :\n",
    "                        if cc not in unitCounties + allFusedCounties:\n",
    "                            for vv in countyFragVTDset[cc] :\n",
    "                                if isRookAdj(fragVTDgeom[vv], fragVTDgeom[v]):\n",
    "                                    nVTDneighbors[v] +=1\n",
    "                                    lastVTDneighbor[v] = vv\n",
    "                            if nVTDneighbors[v] == 1:\n",
    "                                print(\"WARNING. vtd frag\",v,\"in county\",c,\"intersected county\",cc,\"but had no intracounty neighbors\")\n",
    "                                plotPoly(fragVTDgeom[v],2)\n",
    "                                plotCenter(\"iso\",fragVTDgeom[v])\n",
    "                                plotPoly(countyGeom[cc])\n",
    "                                plt.show()\n",
    "                        else:\n",
    "                            nVTDneighbors[v] +=1\n",
    "                            if nVTDneighbors[v] == 1:\n",
    "                                raise Exception(\"neighborless vtd fragment\",v,\"neighbors a unit or fused county\",cc)                                \n",
    "            if v == debugV:\n",
    "                print(v,\"has\",nVTDneighbors[v],\"neighbors.  its last is\",lastVTDneighbor[v])\n",
    "                \n",
    "for loop in range(3): #to catch surrounds of surrounds\n",
    "    for V in populatedTractList:\n",
    "        c = countyNo[V]\n",
    "        if c not in allFusedCounties and c not in unitCounties: \n",
    "            for v in VTDchildren[V]:\n",
    "                if nVTDneighbors[v] == 1:\n",
    "                    vv = lastVTDneighbor[v]\n",
    "                    if v in surrounders:  #transferring surrounded of surrounds to master surrounder\n",
    "                        for sNo, s in enumerate(surroundedVTDs):\n",
    "                            if surrounders[sNo] == v:\n",
    "                                surrounders[sNo] = vv\n",
    "                    surroundedVTDs.append(v)\n",
    "                    surrounders.append(vv)\n",
    "                    nVTDneighbors[vv] -=1\n",
    "                    nVTDneighbors[v] -=1 #in case this surrounder becomes a later surroundee\n",
    "                    fragVTDpop[vv] += fragVTDpop[v]\n",
    "                    fragVTDpop[v] = 0\n",
    "                    if lastVTDneighbor[vv] == v:  #find another neighbor in case this surrounder is also a surroundee in loop 2\n",
    "                        for vvv in countyFragVTDset[c]:\n",
    "                            if vvv not in [v,vv]:\n",
    "                                if isRookAdj( fragVTDgeom[vvv], fragVTDgeom[vv]):\n",
    "                                    lastVTDneighbor[vv] = vvv\n",
    "                    if lastVTDneighbor[vv] == v:\n",
    "                        print(\"WARNING.  We did not find another neighbor of surrounder\",vv,\"other than surroundee\",v)\n",
    "                    if loop > 0:\n",
    "                        print(\"On loop\",loop+1,\"for county\",c,\" we found that vtd frag\",v,\"now has only 1 neighbor\",vv)\n",
    "if STATE == \"WY\": #\"OH\":  #state-specific manual surround enforcement\n",
    "    #c = 72\n",
    "    #print(\"visualizing VTD fragments in county\",c)\n",
    "    #for v in countyFragVTDset[c]:\n",
    "    #    plotPoly(fragVTDgeom[v])\n",
    "    #    plotCenter(v, fragVTDgeom[v])\n",
    "    #plt.show()\n",
    "    #print(\"I recommend surrounded = [334, 343] and surrounder = 312\")\n",
    "    #specialSurrounded = ast.literal_eval(input(\"enter the [v1, v2, ...] list of surrounded fragVTDs from above map\"))\n",
    "    #specialSurrounder = int(input(\"enter the fragVTDno that surrounds these\"))\n",
    "    specialSurroundedLists = [ [334, 343] ] + sdedLists\n",
    "    specialSurrounders = [312] + sders \n",
    "    for ijk, specialSurrounded in enumerate(specialSurroundedLists):\n",
    "        specialSurrounder = VTDchildren[specialSurrounders[ijk]][0]\n",
    "        print(\"special for\",STATE,\", I believe that\", specialSurrounded,\"are surrounded by vtd (fragment)\",specialSurrounder,\". Here, let me show you\")\n",
    "        c = countyNo[parentVTDno[specialSurrounder]]\n",
    "        plotPoly(countyGeom[c], 0.5)\n",
    "        for V in specialSurrounded:            \n",
    "            for v in VTDchildren[V]:\n",
    "                plotPoly(fragVTDgeom[v])\n",
    "                plotCenter(v,fragVTDgeom[v])\n",
    "            plotPoly(fragVTDgeom[specialSurrounder],0.2)\n",
    "            plotCenter(specialSurrounder, fragVTDgeom[specialSurrounder], 8)\n",
    "        plt.show()\n",
    "        shouldIcombine = int(input(\"enter 1 to apply the surrounding operation\"))\n",
    "        if shouldIcombine == 1:\n",
    "            for v in specialSurrounded:\n",
    "                vv = specialSurrounder\n",
    "                if v in surrounders:  #transferring surrounded of surrounds to master surrounder\n",
    "                    for sNo, s in enumerate(surroundedVTDs):\n",
    "                        if surrounders[sNo] == v:\n",
    "                            surrounders[sNo] = vv\n",
    "                surroundedVTDs.append(v)\n",
    "                surrounders.append(vv)\n",
    "                nVTDneighbors[vv] -=1\n",
    "                nVTDneighbors[v] = 0 #we are capturing all surroundees (some of whom may touch other surroundees)\n",
    "                fragVTDpop[vv] += fragVTDpop[v]\n",
    "                fragVTDpop[v] = 0\n",
    "\n",
    "\n",
    "for V in populatedTractList:\n",
    "    c = countyNo[V]\n",
    "    if c not in allFusedCounties and c not in unitCounties: \n",
    "        for v in VTDchildren[V]:\n",
    "            if nVTDneighbors[v] >1:\n",
    "                unitCP.append(fragVTDgeom[v].centroid)\n",
    "                unitGeom.append(fragVTDgeom[v])\n",
    "                unitPop.append(fragVTDpop[v])   #for now, ratio pop by area, not block decomposition\n",
    "                vtdUnits.append(v)   #if a border unit, we'll catch in below big loop, after checking for surround\n",
    "                allUnits.append(v)\n",
    "#for V in populatedTractList:\n",
    "#    c = countyNo[V]\n",
    "#    if c not in allFusedCounties and c not in unitCounties:  \n",
    "#        for v in VTDchildren[V]: \n",
    "for V in populatedTractList:\n",
    "    c = countyNo[V]\n",
    "    if c not in allFusedCounties and c not in unitCounties: \n",
    "        for v in VTDchildren[V]:\n",
    "            if nVTDneighbors[v] == 1:  #a surrounded VTD, transfer its pop to surrounder unit.  Don't bother with shifting centerpoints\n",
    "                print(\"somehow we missed 1-neighbor vtd frag\",v,\" with last vtd frag nbr\",lastVTDneighbor[v])\n",
    "            if nVTDneighbors[v] == 0 and v not in surroundedVTDs:\n",
    "                print(\"WARNING. unsurrounded vtd\",v,\"had no found neighbors\")\n",
    "\n",
    "for i, L in enumerate(CCBlist):\n",
    "    unitCP.append( CCBcp[i] )\n",
    "    unitPop.append(CCBpop[i])\n",
    "    unitGeom.append(   CCBgeom[i])\n",
    "    nbrUnitGeom.append(CCBgeom[i])\n",
    "    allUnits.append(i+0.25)  #use alt non-integers to avoid vtd and county and cluster confusion\n",
    "\n",
    "nUnits = len(allUnits)\n",
    "print(\"After surround checks, we appear to have\",nUnits,\"building blocks defined. We captured\",len(surroundedVTDs),\"surrounded VTDs\")\n",
    "\n",
    "unitNbrs = [list() for u in range(nUnits)]\n",
    "countyUnitList = [list() for c in range(nCounties)]\n",
    "for c in uncutCountyList:\n",
    "    for v in countyFragVTDset[c]:\n",
    "        if v in allUnits:\n",
    "            countyUnitList[c].append(allUnits.index(v))\n",
    "\n",
    "sketchyList = list()\n",
    "for c in uncutCountyList:\n",
    "    if c%20 == 0:\n",
    "        print(\"working on unit neighbor lists for county\",c)\n",
    "    if c not in allFusedCounties:  #see a separate loop below for cluster-cluster neighbors\n",
    "        if c in unitCounties:    \n",
    "            u = allUnits.index(c+0.5)\n",
    "            for cc in neighborCountyList[c]:\n",
    "                if cc not in allFusedCounties:\n",
    "                    if cc in unitCounties:\n",
    "                        unitNbrs[u].append(allUnits.index(cc+0.5))  #we'll catch the complement in the cc county's loop\n",
    "                    else:\n",
    "                        for uu in countyUnitList[cc] :\n",
    "                            if isRookAdj( countyGeom[c], unitGeom[uu] ):\n",
    "                                unitNbrs[u].append(uu)\n",
    "                                unitNbrs[uu].append(u)\n",
    "            for i,geo in enumerate(CCBgeom):\n",
    "                if isRookAdj( geo, countyGeom[c] ):\n",
    "                    unitNbrs[u].append(allUnits.index(i+0.25) )\n",
    "                    unitNbrs[allUnits.index(i+0.25) ].append(u)\n",
    "        else:  #non-unit county      \n",
    "            for u in countyUnitList[c] :\n",
    "                for uu in list( set(countyUnitList[c]).difference({u}) ) :\n",
    "                    if isRookAdj( unitGeom[u], unitGeom[uu] ):\n",
    "                        unitNbrs[u].append(uu )  #will catch complement later in this county's loop\n",
    "                for cc in neighborCountyList[c]:\n",
    "                    if cc not in allFusedCounties and cc not in unitCounties: #see an above block for handling unitCounties\n",
    "                        for uu in countyUnitList[cc]:\n",
    "                            if isRookAdj( unitGeom[u], unitGeom[uu] ):\n",
    "                                unitNbrs[u].append(uu )\n",
    "\n",
    "            for u in countyUnitList[c] :\n",
    "                for i,geo in enumerate(CCBgeom):\n",
    "                    if isRookAdj( geo, unitGeom[u] ):\n",
    "                        unitNbrs[u].append(allUnits.index(i+0.25) )\n",
    "                        unitNbrs[allUnits.index(i+0.25) ].append(u)\n",
    "                if len(unitNbrs[u]) == 0:\n",
    "                    print(\"ERROR - unit\",u,\" = vtd\",allUnits[u],\"in county\", c,\"has no neighbors\")\n",
    "                if len(unitNbrs[u]) == 1:  #after fragmentation, this unit appears surrounded.  Next block to confirm it has non-intracounty neighbors                       \n",
    "                    print(\"WARNING - unit\",u,\" = vtd\",allUnits[u],\"in county\", c,\"has only 1 neighbor=\",unitNbrs[u],\". Optional triage in next block\")\n",
    "                    sketchyList.append([u,unitNbrs[u][0] ] )\n",
    "\n",
    "CCBunits = CCBlist.copy()                        \n",
    "for i, geo in enumerate(CCBgeom):  #this loop: only cluster-cluster intersections.  Cluster-vtd and cluster-county neighbors already found above.\n",
    "    for ii in range(i+1,len(CCBgeom) ) :\n",
    "        if isRookAdj( geo, CCBgeom[ii] ):\n",
    "            unitNbrs[allUnits.index(i+0.25) ].append(allUnits.index(ii+0.25) ) #all CCB-county, CCB-vtd intersxns already covered\n",
    "            unitNbrs[allUnits.index(ii+0.25)].append(allUnits.index(i+0.25) )\n",
    "print(\"All done creating unit lists\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "94741893-6835-45ac-9793-64cbaf4823b2",
   "metadata": {},
   "outputs": [],
   "source": [
    "for L in sketchyList:  #hope that some of these flagged units picked up unit-county or CCB neighbors\n",
    "    print(\"sketchy unit\",L[0], \"has neighbor list\",unitNbrs[L[0]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "cb4277b4-d6ef-4c8c-aa23-6fde227379ff",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "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LV68WDk5OZo8ebLKysrk8XgkST6fT7169dLatWs1ceLERl+/YMECvfvuu3rnnXc6Uob8fr+8Xq98Pl/9+wMAAHtr7fd3u+ewRKNRrVixQpWVlcrPz1coFJLD4ZDb7a5/TnJyspxOpzZs2NBkOy+99JLOPfdcfec731Hfvn11zjnn6Kmnnmrx/UOhkPx+f4MNAAB0T20OLDt37lR6errcbrfuuOMOrVq1SqNGjdK4ceOUlpam+fPnq6qqSpWVlZo3b56i0aiKi4ubbO/TTz/VkiVLNGLECK1Zs0Z33nmn7r77bj3zzDPN1rFw4UJ5vd76LScnp62HAgAA4kSbh4Rqamr0xRdfyOfz6c9//rOefvpprV+/XqNGjdLatWt15513at++fXI6nbrhhhu0e/dunX/++VqyZEmj7SUlJencc8/Ve++9V7/v7rvv1pYtW7Rx48Ym6wiFQgqFQvW/+/1+5eTkMCQEAEAcae2QkKutDSclJWn48OGSpLFjx2rLli169NFHtXTpUk2aNElFRUU6fPiwXC6XMjMz1b9/fw0bNqzJ9gYMGKBRo0Y12Ddy5Ej95S9/abYOt9vdYPgJAAB0X20OLF8Xi8Ua9HRIUp8+fSRJhYWFKi0t1dVXX93k6y+66CLt3bu3wb6PPvpIp5xySkdLAwAA3USbAktBQYEmT56swYMHKxAIaPny5Vq3bp3WrFkjSVq2bJlGjhyp7Oxsbdy4UbNnz9acOXOUm5tb38aECRM0bdo0zZo1S5I0Z84cXXjhhXrwwQd1/fXXa/PmzXryySf15JNPduJhAgCAeNamwFJaWqoZM2aouLhYXq9XeXl5WrNmjS677DJJ0t69e1VQUKCjR49qyJAhuu+++zRnzpwGbdQNGdU577zztGrVKhUUFOjnP/+5hg4dqkceeUTTp0/vhMMDAADdQYfXYbEL1mEBACD+dPk6LAAAACcLgQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANgegQUAANge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dbjd7gbDTwAAoPvqcNdHLBZTKBRqsK9Pnz7KzMxUYWGhSktLdfXVVzf62qSkJI0dO1Zvvvlmg/befPNN5efnd7Q0AADQTbSph6WgoECTJ0/W4MGDFQgEtHz5cq1bt05r1qyRJC1btkwjR45Udna2Nm7cqNmzZ2vOnDnKzc2tb2PChAmaNm2aZs2aJUmaO3eubrrpJp177rk6//zz9cgjj6iyslK33HJLJx4mAACIZ20KLKWlpZoxY4aKi4vl9XqVl5enNWvW6LLLLpMk7d27VwUFBTp69KiGDBmi++67T3PmzGnQRt2QUZ3vfve7OnTokO6//36VlJTo7LPP1muvvXbCRFwAANBzdXgdFrtgHRYAAOJPl6/DAgAAcLIQWAAAgO11m7s1141sseItAADxo+57u6UZKt0msAQCAUlixVsAAOJQIBCQ1+tt8u/dZtJtLBbTgQMHlJGRIYfDYXU53Z7f71dOTo7279/PJOc4wnmLP5yz+MR5az3DMBQIBDRw4MBmV8bvNj0sTqdTgwYNsrqMHsfj8fBhjEOct/jDOYtPnLfWaa5npQ6TbgEAgO0RWAAAgO0RWNAubrdbP/nJT7gBZZzhvMUfzll84rx1vm4z6RYAAHRf9LAAAADbI7AAAADbI7AAAADbI7AAAADbI7CgSR999JGmTp2qPn36yOPx6OKLL9Zbb73V6HOPHDmiQYMGyeFwqLy8vNl2hwwZIofD0WBbtGhRFxxBz9NV5+zo0aOaPn26PB6PMjMzddttt6mioqILjqBnaum8HTlyRFdccYUGDhwot9utnJwczZo1q8V7p/FZ6zpddc74rDWNwIImXXXVVYpEIiosLNS2bdt01lln6aqrrlJJSckJz73tttuUl5fX6rZ//vOfq7i4uH676667OrP0Hqurztn06dO1a9cuvf7663rllVf09ttv6/vf/35nl99jtXTenE6npk6dqpdeekkfffSR/vjHP+qNN97QHXfc0WLbfNa6RledMz5rzTCARhw6dMiQZLz99tv1+/x+vyHJeP311xs894knnjAuvfRS48033zQkGWVlZc22fcoppxgPP/xwF1Tds3XVOdu9e7chydiyZUv9vtWrVxsOh8P46quvOv04epq2nLfjPfroo8agQYOabZvPWtfoqnPGZ6159LCgUb1791Zubq6effZZVVZWKhKJaOnSperbt6/Gjh1b/7zdu3fr5z//uZ599tlmb1r1dYsWLVLv3r11zjnnaPHixYpEIl1xGD1KV52zjRs3KjMzU+eee279vokTJ8rpdGrTpk1dciw9SWvP2/EOHDigv/71r7r00ktbbJ/PWufrqnPGZ6153ebmh+hcDodDb7zxhq655hplZGTI6XSqb9++eu2119SrVy9JUigU0g033KDFixdr8ODB+vTTT1vV9t13360xY8YoKytL7733ngoKClRcXKyHHnqoKw+p2+uqc1ZSUqK+ffs22OdyuZSVldXoUBPapjXnrc4NN9ygF198UdXV1ZoyZYqefvrpZtvms9Y1uuqc8VlrHj0sPcyCBQtOmIT39W3Pnj0yDEMzZ85U37599c4772jz5s265pprNGXKFBUXF0uSCgoKNHLkSN14441tqmHu3Ln61re+pby8PN1xxx369a9/rccff1yhUKgrDjnu2eGcoe0687zVefjhh7V9+3a9+OKLKioq0ty5c5utgc9a29jhnKFpLM3fwxw6dEhHjhxp9jnDhg3TO++8o0mTJqmsrKzBrdFHjBih2267TQsWLNDZZ5+tnTt3yuFwSJIMw1AsFlNCQoLuu+8+/exnP2tVTbt27dIZZ5yhPXv2KDc3t/0H101Zfc7+8Ic/6Ac/+IHKysrq90UiESUnJ2vlypWaNm1aJx1p99KZ560xGzZs0CWXXKIDBw5owIABraqJz1rzrD5nfNaax5BQD5Odna3s7OwWn1dVVSVJJ8xxcDqdisVikqS//OUvqq6urv/bli1bdOutt+qdd97Rqaee2uqaduzYUd+lihNZfc7y8/NVXl6ubdu21Y/PFxYWKhaL6YILLmjXMfUEnXneGlP3t7b0lvBZa57V54zPWgusm+8LOzt06JDRu3dv49prrzV27Nhh7N2715g3b56RmJho7Nixo9HXvPXWWydccbJp0yYjNzfX+PLLLw3DMIz33nvPePjhh40dO3YYRUVFxnPPPWdkZ2cbM2bMOBmH1a111TkzDMO44oorjHPOOcfYtGmTsWHDBmPEiBHGDTfc0NWH1CO05rz9/e9/N/7whz8YO3fuNPbt22e88sorxsiRI42LLrqovh0+aydPV50zw+Cz1hwCC5q0ZcsWY9KkSUZWVpaRkZFhjBs3znj11VebfH5jX351+/bt22cYhmFs27bNuOCCCwyv12skJycbI0eONB588EEjGAx28dH0DF1xzgzDMI4cOWLccMMNRnp6uuHxeIxbbrnFCAQCXXgkPUtL562wsNDIz8+v/9yMGDHCmD9/Pp81C3XFOTMMPmvNYQ4LAACwPa4SAgAAtkdgAQAAtkdgAQAAtkdgAQAAtkdgAQAAtkdgAQAAtkdgAQAAtkdgAQAAtkdgAQAAtkdgAQAAtkdgAQAAtkdgAQAAtvf/AB7y9qfGsxYRAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "for u in range(nUnits):\n",
    "    if allUnits[u] - int(allUnits[u]) == 0.25:\n",
    "        plotPoly(unitGeom[u])\n",
    "        plotCenter(u,unitGeom[u])\n",
    "plotPoly(MAP)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "8378940d-4387-4188-8ae1-a62010500ecb",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Now build the border topology\n",
      "counties and clusters done, now working on (frag) vtd-based units\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(\"Now build the border topology\")\n",
    "borderUnits, borderType = list(), list()\n",
    "for c in borderCounties:\n",
    "    if c in unitCounties:\n",
    "        borderUnits.append(allUnits.index(c+0.5))\n",
    "        borderType.append(\"county\")\n",
    "for i,L in enumerate(CCBlist):\n",
    "    if CCBgeom[i].intersects(MAPexterior):  #should always be the case\n",
    "        borderUnits.append(allUnits.index(i+0.25))\n",
    "        borderType.append(\"cluster\")\n",
    "print(\"counties and clusters done, now working on (frag) vtd-based units\")\n",
    "for c in borderCounties:\n",
    "    if c not in unitCounties + allFusedCounties:\n",
    "        for u in countyUnitList[c]:\n",
    "            if unitGeom[u].intersects(countyGeom[c].exterior): #(MAPexterior):\n",
    "                borderUnits.append(u)\n",
    "                borderType.append(\"vtd\")                \n",
    "    \n",
    "for i,b in enumerate(borderUnits):\n",
    "    plotPoly(unitGeom[b])\n",
    "    if borderType[i] == \"cluster\":\n",
    "        j = int(allUnits[b])\n",
    "        for c in CCBlist[j]:\n",
    "            plotPoly(countyGeom[c],0.2)\n",
    "            plotCenter(\"fused\",countyGeom[c], 6)\n",
    "for c in unitCounties:\n",
    "    plotPoly(countyGeom[c],0.4)\n",
    "    plotCenter(\"unit\",countyGeom[c],8)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "9a44605a-c456-4dcb-b285-6831eb0952e7",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "creating reverse county-unit assignments\n"
     ]
    }
   ],
   "source": [
    "print(\"creating reverse county-unit assignments\")\n",
    "unitCountyNo = [-999]*nVTDs\n",
    "for c in liveCountyList:\n",
    "    for u in countyUnitList[c]:\n",
    "        unitCountyNo[u] = c"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "937d923d-9e95-45e9-9aef-77cb4377781d",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Try again: checking that the list of borderUnits is contiguous all around\n",
      "Modified for Franklin-Hamilton as there are two discontig maps\n",
      "number of border units = 124\n"
     ]
    }
   ],
   "source": [
    "print(\"Try again: checking that the list of borderUnits is contiguous all around\")\n",
    "print(\"Modified for Franklin-Hamilton as there are two discontig maps\")\n",
    "print(\"number of border units =\",len(borderUnits))\n",
    "nLoop = 0\n",
    "for u in borderUnits:\n",
    "    cSet = set(countyUnitList[unitCountyNo[u]])\n",
    "    isUnbroken, smallPieceList = isContiguous(list(set(borderUnits).intersection(cSet).difference({u})),unitNbrs)\n",
    "    # ... = isContiguous(list(set(borderUnits).difference({u})),unitNbrs)\n",
    "    if not isUnbroken:\n",
    "        nLoop +=1\n",
    "        print(\"border is discontig if we skip\",u)\n",
    "        if nLoop < 3:  #avoid excessive printing\n",
    "            for uu in smallPieceList:\n",
    "                plotPoly(unitGeom[uu],0.5)\n",
    "                plotCenter(\"n\"+str(uu),unitGeom[uu])\n",
    "            plotCenter(u,unitGeom[u])\n",
    "            plotPoly(unitGeom[u])\n",
    "            plt.show()\n",
    "borderSet = set(borderUnits)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "93603f77-77fa-4453-b54b-5ea07fcb6721",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "here, we identify 'border' units that aren't needed to define the map border\n",
      "Bueno! no 'border units' that could be eliminated from the border set\n"
     ]
    }
   ],
   "source": [
    "print(\"here, we identify 'border' units that aren't needed to define the map border\")\n",
    "canBeRemoved, powerNeighbors = set(), set()\n",
    "for u in borderUnits:\n",
    "    uNeighbors = list(borderSet.intersection(set(unitNbrs[u])) )\n",
    "    if len(uNeighbors) < 2:\n",
    "        plotPoly(unitGeom[u])\n",
    "        plotCenter(u,unitGeom[u])\n",
    "        uu = uNeighbors[0]\n",
    "        otherBorderNeighbors = set(unitNbrs[uu]).intersection(borderSet).difference({u})\n",
    "        if len(otherBorderNeighbors) > 1:  #this neighbor of our 1-border-neighbor border unit makes a border chain without the problem border unit\n",
    "            canBeRemoved.add(u)\n",
    "            powerNeighbors.add(uu)\n",
    "        plotCenter(uu,unitGeom[uu],6)\n",
    "        plotPoly(unitGeom[uu],0.5)\n",
    "        for uuu in set(unitNbrs[uu]).intersection(borderSet).difference({u}):\n",
    "            plotPoly(unitGeom[uuu])\n",
    "            plotCenter(str(uuu)+\"=N of\"+str(uu),unitGeom[uuu])\n",
    "        for uuu in set(unitNbrs[u]).difference(borderSet):\n",
    "                plotCenter(uuu+0.1,unitGeom[uuu],6)\n",
    "                plotPoly(unitGeom[uuu],0.1)\n",
    "        c = countyNo[allUnits[u]]\n",
    "        #plotPoly(countyGeom[c] )\n",
    "        #plotCenter(c, countyGeom[c])\n",
    "        plt.show()\n",
    "if len(canBeRemoved) == 0:\n",
    "    print(\"Bueno! no 'border units' that could be eliminated from the border set\")\n",
    "else:\n",
    "    print(canBeRemoved,\"is the list of 1-neighbor 'border' units that can be eliminated from the border set\")\n",
    "    print(\"... as they are enveloped on the border; the enveloping border unit has two other map-border neighbors\")\n",
    "    yesRemove = input(\"enter 1 to remove these from the list of border units\")\n",
    "    if int(yesRemove) == 1:\n",
    "        canRemove = True\n",
    "        for uu in powerNeighbors:\n",
    "            testSet = (borderSet.difference(canBeRemoved)).difference({uu})\n",
    "            if not isContiguous(list(testSet),unitNbrs):\n",
    "                canRemove = False\n",
    "                print(\"We can't complete the border if unit\",uu,\"is not included in the ring\")\n",
    "        if canRemove:\n",
    "            borderSet = borderSet.difference(canBeRemoved)\n",
    "            borderList = list(borderSet)\n",
    "            borderUnits = list(borderSet)\n",
    "            print(\"Success! we removed\",canBeRemoved,\"from the list of borderUnits\")\n",
    "    else:\n",
    "        print(\"Fine, be that way.  Sheesh, I will keep them.\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "b13c68e3-33ed-48b3-acca-78012ce0bf61",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "here is the final border set by county\n"
     ]
    },
    {
     "data": {
      "image/png": "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k5KSgsFgIDU1ldtuu63eObT27NnD9ddfT7du3TCZTPTo0YNHH30Uv9/fEofUKjXHeQaYM2cOI0eOxGw2Ex0d3cxH0TY017kuLi7myiuvxG63Ex0dzfXXX4/b7W7uw2m1jnWeN2zYwLRp00hNTcVkMtGvXz9efPHFY2537dq1jB07lujoaGJjY7nxxhs79HmG5jvXx9puWyRCTQd3wQUXEAwGWbx4MWvWrGHw4MFccMEF5ObmAuGRmCdPnszXX3/Njh07eOedd/jpp5+46aab6tzmtm3bCIVCvP7662zevJkXXniBf//73zz44IMtdVitTnOcZwC/388ll1zCzTff3BKH0SY017m+8sor2bx5Mz/++CPffPMNy5Yt48Ybb2yJQ2qVjnWe16xZQ0JCAvPmzWPz5s089NBDzJw5k1deeaXObWZnZzNmzBh69uzJqlWr+P7779m8eTPXXHNNCx1V69Qc57oh222TVKHDKigoUAF12bJl1cucTqcKqD/++GOd73vxxRfVzp07N2pfzzzzjNqtW7fjLmtb1hLn+e2331ajoqJOtKhtXnOd6y1btqiAunr16uplCxYsUDUajXrw4MGmKXwbcrzn+ZZbblHPOeecOl9//fXX1YSEBFVRlOplGzduVAF1586dTVP4Nqa5zvXxbre1EzU1HVhsbCx9+vTh3XffxePxEAwGef3110lISGDo0KG1vic7O5vPP/+cs846q1H7KisrIyYmpimK3ea05Hnu6JrrXK9YsYLo6GhOOeWU6mVjxoxBkiRWrVrV5MfR2h3PeYZjfw74fD70en2NSQtNJhMAy5cvb7oDaEOa61wf73ZbvUinKiGy9u/frw4dOlTVaDSqLMtqcnKyunbt2qPWu/zyy1WTyaQC6qRJk9SKiooG72Pnzp2q3W5X33jjjaYsepvS3OdZ1NQc0hznes6cOWrv3r2PWh4fH6+++uqrTVr+tqKh57nKr7/+qmq1WnXhwoV1rpORkaFqtVr1mWeeUX0+n1pcXKxOnTpVBdQnn3yyOQ6jTWiOc308220LRE1NOzRjxgw0Gk29t23btqGqKrfeeisJCQn88ssv/P7771x00UVMmjSJnJycGtt84YUXWLt2LV999RWZmZncfffdDSrLwYMHGT9+PJdccgk33HBDcxxuxLSm89zeiXPdMprjPANkZGQwefJkHn30UcaNG1fn/tPT05k7dy7/+Mc/MJvNJCUl0a1bNxITE2vU3rQHkT7Xjd1umxHJRCU0j/z8fHXr1q313nw+n/rTTz+pkiSpZWVlNd7fs2dP9amnnqpz+7/88osKqNnZ2fWW4+DBg2qvXr3UP//5zzWukbcXreU8q2r7r6mJ9Ll+66231Ojo6BrLAoGAKsuy+vnnn5/4AbYSzXGeN2/erCYkJKgPPvhgo8qSm5urulwu1e12q5IkqZ988skJH19rEulzfbx/K62dNsKZSmgG8fHxxMfHH3O98vJygKN+AUmSRCgUqvN9Va/5fL461zl48CDnnHMOQ4cO5e233253v7KgdZznjiLS53rEiBGUlpayZs2a6vYGixcvJhQKMXz48AYdQ1vQ1Od58+bNnHvuuUyfPp05c+Y0qiyJiYkA/Pe//8VoNDJ27NhGvb+1i/S5Pt6/lVYv0qlKiJyCggI1NjZWvfjii9X169er27dvV++9915Vp9Op69evV1VVVb/99lv1v//9r7pp0yY1KytL/eabb9R+/fqpp59+evV2Vq1apfbp00c9cOCAqqqqeuDAAbVnz57q6NGj1QMHDqg5OTnVt46ouc6zqqrq3r171XXr1qmzZ89WrVarum7dOnXdunWqy+Vq8eNsDZrzXI8fP14dMmSIumrVKnX58uVqr1691GnTprX4MbYGDTnPmzZtUuPj49WrrrqqxmdAfn5+9XZqO88vv/yyumbNGnX79u3qK6+8oppMJvXFF19s8WNsLZrrXDdku22RCDUd3OrVq9Vx48apMTExqs1mU0877TT1u+++q3598eLF6ogRI9SoqCjVaDSqvXr1Uh944AG1pKSkep2ff/5ZBdSsrCxVVcOXQoBabx1Vc5xnVVXV6dOn13qef/7555Y7uFamuc51UVGROm3aNNVqtap2u1299tprO2x4VNVjn+dHH3201v+bXbt2rV6ntvP85z//WY2JiVH1er06aNAg9d13323Bo2qdmutcH2u7bZFGVVW1pWqFBEEQBEEQmkv7a+ggCIIgCEKHJEKNIAiCIAjtggg1giAIgiC0CyLUCIIgCILQLohQIwiCIAhCuyBCjSAIgiAI7YIINYIgCIIgtAsi1AiCIAiC0C6IUCMIgiAIQrsgQo0gCIIgCO2CCDWCIAiCILQLItQIgiAIgtAu/D+X6Fl7lN3nFwAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(\"here is the final border set by county\")\n",
    "for c in liveCountyList:    \n",
    "    for u in set(borderUnits).intersection(set(countyUnitList[c])):\n",
    "        plotPoly(unitGeom[u])\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "6ef3ef57-2a72-431e-8229-e290979ffe53",
   "metadata": {},
   "outputs": [],
   "source": [
    "for i,b in enumerate(borderUnits):  #checking and removing duplicates\n",
    "    for ii, bb in enumerate(borderUnits):\n",
    "        if b == bb and i != ii:\n",
    "            print(i,b)\n",
    "borderUnits = list(set(borderUnits))\n",
    "borderSet = set(borderUnits)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "fc1ae6e1-ef52-412b-a966-e9739071af8f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "For safekeeping, write the unit topology to a file\n"
     ]
    }
   ],
   "source": [
    "date_ = \"05Jan25\"\n",
    "print(\"For safekeeping, write the unit topology to a file\")  \n",
    "unitParentVTDno = [-999 for u in range(nUnits)]\n",
    "for u in range(nUnits):    \n",
    "    if allUnits[u] %1 == 0:\n",
    "        v = allUnits[u]\n",
    "        unitParentVTDno[u] = parentVTDno[v]\n",
    "\n",
    "unitVTDlist = [list() for u in range(nUnits)]\n",
    "for u in range(nUnits):\n",
    "    if allUnits[u] % 1 == 0.5 :\n",
    "        c = int(allUnits[u])\n",
    "        unitVTDlist[u] = countyTractList[c].copy()\n",
    "    if allUnits[u] % 1 == 0.25 :\n",
    "        CCBnumber = int(allUnits[u])\n",
    "        for c in CCBlist[CCBnumber] :\n",
    "            unitVTDlist[u] += countyTractList[c]\n",
    "    if allUnits[u] % 1 == 0:\n",
    "        unitVTDlist[u] = [allUnits[u]]\n",
    "        #for i,uu in enumerate(surrounders):  #no longer tracked\n",
    "         #   if u == uu:\n",
    "         #       unitVTDlist[u].append(surroundedVTDs[i])\n",
    "                \n",
    "unitNo = [u for u in range(nUnits)]\n",
    "unitCPx, unitCPy = [unitCP[u].x for u in range(nUnits)], [unitCP[u].y for u in range(nUnits)]\n",
    "onBorder = [0 for u in range(nUnits)]\n",
    "for u in borderUnits:\n",
    "    onBorder[u] = 1\n",
    "nbrDF = pd.DataFrame( {\"unitNo\":unitNo,\"centroid x\":unitCPx,\"centroid y\":unitCPy,\"unitPop\":unitPop,\"onBorder\":onBorder,\n",
    "                       \"neighborList\":unitNbrs, \"unitVTDlist\":unitVTDlist, \"unitParentVTDno\": unitParentVTDno, \"allUnits\":allUnits} )\n",
    "outname = \"FrankHamLegislUnitTopologies_\"+date_+\".csv\" \n",
    "outpath = \"state_map_files/\"+outname\n",
    "nbrDF.to_csv(outpath)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "d4baaea4-7af4-4407-aeb3-f4291d335f89",
   "metadata": {},
   "outputs": [],
   "source": [
    "vtdGeom = tractGeom.copy()  #optional reset if we need to rerun the below clipPoly routine with alternate clipPolys"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "abdd07e7-f9be-480a-9d3d-b3948eeaaa2e",
   "metadata": {},
   "outputs": [],
   "source": [
    "toSquishCountiesList = list()   #default; if we did not have any clipPoly's to move in\n",
    "nClips = 0\n",
    "\n",
    "#NOTE :  I HAVE REMOVED SEVERAL CELL BLOCKS FOR STATES WITH SQUISH OPNS; NONE FOR OHIO"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "4ef91f8f-dabb-4c58-a8a4-bba8e725e586",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Here we compute the map's convex hull. We can build out of whole counties or after squish operations.\n"
     ]
    },
    {
     "name": "stdin",
     "output_type": "stream",
     "text": [
      "enter 1 to use shifted shapes (e.g. for MD, MN), else enter 0 for most states to use uncut counties 0\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "working on confirming HD center 1190 is inside the map's convex hull\n",
      "working on confirming HD center 1691 is inside the map's convex hull\n",
      "working on confirming HD center 7187 is inside the map's convex hull\n",
      "Here is the convex hull and shape and a dot map of the (shifted) unit centerpoints\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Note the MAP convex hull.  Overwrite with your own polygon if desired.\n"
     ]
    }
   ],
   "source": [
    "#OPTION 2 - draw polygonal HDs.  #REQUIRES CONSISTENT TREATMENT OF CCB'S \n",
    "#For GA, MA, MD, MN, NC we draw HDs for ALL vtds, even if they are in a CCB.  We use the clipPoly's to squish in the corners for these HD shapes\n",
    "#Not sure if below would work if we have cut districts AND squished-in corners\n",
    "#We normally draw for each (squished or orig) vtd.  Or, read in tract or blockgroup geometries, use those pops and unit centerpoints\n",
    "\n",
    "hdCP = [vtdGeom[v].centroid for v in range(nTracts)]  #remember, this is after any squish operation\n",
    "print(\"Here we compute the map's convex hull. We can build out of whole counties or after squish operations.\")\n",
    "useSquish = int(input(\"enter 1 to use shifted shapes (e.g. for MD, MN), else enter 0 for most states to use uncut counties\"))\n",
    "if useSquish == 1:\n",
    "    convexMAP = hdCP[countyTractList[uncutCountyList[0]][0]].buffer(0.1) \n",
    "    for v in range(nTracts):\n",
    "        if v not in skipList and v not in allCutVTDs:\n",
    "            convexMAP = convexMAP.union(hdCP[v].buffer(0.1))\n",
    "else:  #build the map via simple union of counties not wholly in fully cut-out districts\n",
    "    convexMAP = countyGeom[uncutCountyList[0]]\n",
    "    for c in uncutCountyList:\n",
    "        convexMAP = convexMAP.union(countyGeom[c])\n",
    "    #convexMAP = MAP.centroid\n",
    "    #for c in range(nCounties):\n",
    "    #    if c not in allFusedCounties:\n",
    "    #        convexMAP = convexMAP.union(countyGeom[c])\n",
    "MAPhull = convexMAP\n",
    "for c in liveCountyList:\n",
    "    MAPhull = MAPhull.union(countyGeom[c].buffer(0.01*countyGeom[c].area**0.5) ) # alt spec for disjointed counties\n",
    "#MAPhull = convexMAP.convex_hull.buffer(0.01*convexMAP.area**0.5)\n",
    "plotPoly(MAPhull)\n",
    "popHDlist = list()\n",
    "for t in range(nTracts):\n",
    "    if t not in allCutVTDs and t not in skipList:  #keep low-pop tracts as VEST may have assigned voters to them\n",
    "        popHDlist.append(t)\n",
    "for i,t in enumerate(popHDlist):\n",
    "    if i%500 == 0:\n",
    "        print(\"working on confirming HD center\",t,\"is inside the map's convex hull\")\n",
    "    if hdCP[t].disjoint(convexMAP.convex_hull):\n",
    "        plotPoly(hdCP[t].buffer(0.03))\n",
    "        hdCP[t] = nearest_points(convexMAP.convex_hull,hdCP[t])[0]\n",
    "        plotCenter(\"m\",hdCP[t])\n",
    "    else:\n",
    "        plotPoly(hdCP[t].buffer(0.01))\n",
    "plotPoly(convexMAP)\n",
    "#plotPoly(convexMAP.convex_hull)\n",
    "plotPoly(MAPhull)\n",
    "for c in allFusedCounties:\n",
    "    plotPoly(countyGeom[c],0.2)\n",
    "print(\"Here is the convex hull and shape and a dot map of the (shifted) unit centerpoints\")\n",
    "plt.show()\n",
    "\n",
    "print(\"Note the MAP convex hull.  Overwrite with your own polygon if desired.\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "8393e96a-75c6-48ec-94e8-1f6fe58d31df",
   "metadata": {},
   "outputs": [],
   "source": [
    "nHDs = nTracts  #need to run this if we start option 2 from a vest list, not a previously run HD poly list\n",
    "HDcountyNo = countyNo.copy()\n",
    "populatedTractList = popHDlist.copy()  #nomenclature equivalency"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "bcaf6ea2-1c3b-48c1-9ad6-937d7b7e4385",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Let us establish the (post-squish) point-point distances for all HD centers, about 8 min for 4000-unit state\n",
      "working on tract-tract distances for unit 1190 out of 8941 . Time = 0\n",
      "working on tract-tract distances for unit 1591 out of 8941 . Time = 8\n",
      "working on tract-tract distances for unit 6987 out of 8941 . Time = 19\n",
      "working on tract-tract distances for unit 7387 out of 8941 . Time = 28\n",
      "All done; total elapsed  30 seconds for OH with 18 districts to map\n"
     ]
    },
    {
     "data": {
      "image/png": "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DPOv8Z809RQAAGhyBAwAADAOAQMAAIxDwAAAAOMQMA2IjwpfmuvjoqaewqVNDmvqGQAALoGAAX4E3jwNAFcWAuYqx0e0AQAmImAAAIBxCBgAAGAcAqaB8GMYAAAaDwFjED7l5C1/U/umngIAoIlc0QGTnZ2t66+/XkFBQYqPj9fu3bubekq4Qsx87KGmngIAoAldsQGzcuVKpaena9KkSdq7d69uvfVWJSUl6dixY009NQAA0MSu2ICZNWuWRowYoSeffFKdOnXSggUL1LJlSy1evLipp4arQPaoTZJ4bxMAXKkCm3oC51NZWanCwkJNmDDB3ufv76/ExEQVFBSc95yKigpVVFTYX5eXl0uSPB7P5Z3s/6mt+E7f1tRclterqKiwr6+K0w36GnXXvhzzPlN52mvuHo9Htae/bZDXOltVpdOnay/PP98KS2cq/7vOdWtzqoHXHQB88n9/L/3w+0HtaT/VnKm56DH778sK66LHfniNix1r6O9F31d3XcuyLj7QugJ9/fXXliRrx44dXvvHjh1r9erV67znTJo0yZLExsbGxsbG1gy20tLSi7bCFfkEpj4mTJig9PR0++va2lodP35cbdq0kZ+fX72v6/F4FBsbq9LSUoWGhjbEVHERrHfjYr0bF+vduFjvxtVQ621Zlk6dOqWYmJiLjrsiA6Zt27YKCAhQWVmZ1/6ysjK5XK7znuN0OuV0Or32hYeHN9icQkND+RegEbHejYv1blysd+NivRtXQ6x3WFjYJcdckW/idTgc6tGjh/Lz8+19tbW1ys/PV0JCQhPODAAAXAmuyCcwkpSenq5hw4apZ8+e6tWrl+bMmaPTp0/rySefbOqpAQCAJnbFBsxjjz2m//znP8rIyJDb7Va3bt2Um5urqKioRp2H0+nUpEmTzvnxFC4P1rtxsd6Ni/VuXKx342rs9fazrEt9TgkAAODKckW+BwYAAOBiCBgAAGAcAgYAABiHgAEAAMa56gMmOztb119/vYKCghQfH6/du3dfdPx7772nDh06KCgoSF26dNH69esbaabNhy9rvmjRIvXp00etW7dW69atlZiYeMl/RvDm65/xOitWrJCfn58GDhx4eSfYzPi63idPnlRqaqqio6PldDp100038feKD3xd7zlz5ujmm29WcHCwYmNjNWbMGJ09e7aRZmuurVu36uGHH1ZMTIz8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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "our maxD was 0.7\n"
     ]
    }
   ],
   "source": [
    "#continuing option 2 ....... ##########  THIS IS FOR TRACT - TRACT, despite the \"unit\" nomenclature\n",
    "print(\"Let us establish the (post-squish) point-point distances for all HD centers, about 8 min for 4000-unit state\")\n",
    "#NOTE: FOR LARGE STATES, RESTRICT THE SEARCH TO COUNTIES WITHIN A 3/SQRT(nDistrict) DIAMETER OF THE HOME UNIT\n",
    "uuDist = [[int(maxD+1) for t in range(nHDs)] for t in range(nHDs)] #default: too big to capture\n",
    "closeCountyList = [list() for c in range(nCounties)]\n",
    "closeCountyDist = maxD   #min(maxD,3./float(nDistricts)**0.5 * maxD )  #use above maxD for these counties as well\n",
    "xScaleSquared = xScale*xScale\n",
    "if nDistricts < 10: #closeCountyDist >= maxD:  #small state\n",
    "    closeCountyList = [[i for i in range(nCounties)] for c in range(nCounties)]  #all counties are close enough\n",
    "else:\n",
    "    for c in uncutCountyList:\n",
    "        closeCountyList[c].append(c)\n",
    "        for cc in range(c+1,nCounties):\n",
    "            if cc in uncutCountyList:\n",
    "                if cc in neighborCountyList[c]:\n",
    "                    closeCountyList[c].append(cc)\n",
    "                    closeCountyList[cc].append(c)\n",
    "                else:    \n",
    "                    dist = getLongDist(countyCP[c], countyCP[cc],xScale)\n",
    "                    if dist < closeCountyDist:\n",
    "                        closeCountyList[c].append(cc)\n",
    "                        closeCountyList[cc].append(c)\n",
    "startTime = time.time()\n",
    "\n",
    "for i,t in enumerate(populatedTractList):\n",
    "    if i %400 == 0:\n",
    "        print(\"working on tract-tract distances for unit\",t,\"out of\",nHDs,\". Time =\",int(time.time() - startTime))\n",
    "    uuDist[t][t] == 0.\n",
    "    for tt in populatedTractList:\n",
    "        if tt > t and (HDcountyNo[tt] in closeCountyList[HDcountyNo[t]] or HDcountyNo[t] == HDcountyNo[tt]):  #time-saver; do the triangle matrix\n",
    "                dist = getLongDist(hdCP[t], hdCP[tt],xScale)\n",
    "                uuDist[t][tt], uuDist[tt][t] = dist, dist\n",
    "print(\"All done; total elapsed \",int(time.time()-startTime),\"seconds for\",STATE,\"with\",nDistricts,\"districts to map\" )\n",
    "plt.hist(uuDist)\n",
    "plt.show()\n",
    "print(\"our maxD was\",maxD)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "2f392acb-ba52-4343-80ae-a58ba0b57366",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "similar to above, but for angles\n",
      "working on unit-unit angles for unit 1190 out of 8941 . Time = 0\n",
      "working on unit-unit angles for unit 1591 out of 8941 . Time = 4\n",
      "working on unit-unit angles for unit 6987 out of 8941 . Time = 10\n",
      "working on unit-unit angles for unit 7387 out of 8941 . Time = 15\n",
      "All done with angles; total elapsed seconds = 16\n"
     ]
    }
   ],
   "source": [
    "#continuing option 2 \n",
    "print(\"similar to above, but for angles\")  #convention is angle[a][b] is from a to b\n",
    "uuAngle = [[0. for t in range(nHDs)] for t in range(nHDs)]\n",
    "\n",
    "pi = 3.141592653\n",
    "twoPi = pi*2.\n",
    "startTime = time.time()\n",
    "for i, t in enumerate(populatedTractList):\n",
    "    if i %400 == 0:\n",
    "        print(\"working on unit-unit angles for unit\",t,\"out of\",nHDs,\". Time =\",int(time.time() - startTime)  )\n",
    "    for tt in populatedTractList:\n",
    "        if tt > t and (HDcountyNo[tt] in closeCountyList[HDcountyNo[t]] or HDcountyNo[t] == HDcountyNo[tt]):  #time-saver; do the triangle matrix\n",
    "            angLE = math.atan2(hdCP[tt].y - hdCP[t].y, xScale * (hdCP[tt].x - hdCP[t].x) )\n",
    "            uuAngle[t][tt], uuAngle[tt][t] = angLE % twoPi, (angLE + pi) % twoPi\n",
    "print(\"All done with angles; total elapsed seconds =\",int(time.time()-startTime) )\n",
    "#plt.hist(uuAngle)\n",
    "#plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "4cc54eba-ca37-4680-9699-37332133afb8",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "119691.278 18 2154443.0 18.0 11799448.0\n",
      "2154443.0 2154443 0.18259\n"
     ]
    }
   ],
   "source": [
    "print(r3(aDP), nDistricts, statePop, statePop/aDP, trueStatePop)\n",
    "HDweight = [0 for t in range(nHDs)]\n",
    "for t in populatedTractList:\n",
    "    HDweight[t] = tractPop[t] / trueStatePop #skipping the cutList tracts\n",
    "print(statePop,np.sum([tractPop[t] for t in populatedTractList]), r5(np.sum(HDweight))) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "dac2348a-060a-40a9-beeb-02ff70ec1aa1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RUN FOR ALL STATES.for extended peninsulas, need to broaden the 'neighborCountyList' to include all co-squished counties' neighbors\n"
     ]
    }
   ],
   "source": [
    "print(\"RUN FOR ALL STATES.for extended peninsulas, need to broaden the 'neighborCountyList' to include all co-squished counties' neighbors\")\n",
    "opt2nbrCtyList = [neighborCountyList[c].copy() for c in range(nCounties)]\n",
    "for i in range(nClips):\n",
    "    cList = toSquishCountiesList[i]\n",
    "    for c in cList:\n",
    "        for cc in cList:\n",
    "            for ccc in neighborCountyList[cc]:\n",
    "                if ccc not in opt2nbrCtyList[c] and ccc != c:\n",
    "                    opt2nbrCtyList[c].append(ccc)\n",
    "#for c in range(nCounties):\n",
    "#    for cc in opt2nbrCtyList[c]:\n",
    "#        plotPoly(countyGeom[cc])\n",
    "#    plotCenter(c,countyGeom[c])\n",
    "#    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "id": "f2df2e96-2231-433b-a5c7-9790e8d65803",
   "metadata": {},
   "outputs": [],
   "source": [
    "pi=3.1415926536\n",
    "levelL, maxAngleRatio, maxAngle = 0.36, 1.9, 1.8*pi/2.  #original\n",
    "levelL, maxAngleRatio, maxAngle = 0.36, 1.5, 1.5*pi/2.  #2nd try 9-13-24, don't make adjusted angles quite so wide\n",
    "levelL, maxAngleRatio, maxAngle = 0.6, 1.5, 1.5*pi/2.   #3rd try -- adjust angles for more hdCP's not so close to boundary "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "id": "73717144-765f-444d-bc40-0708777126f6",
   "metadata": {},
   "outputs": [],
   "source": [
    "origADP = aDP #safekeeping\n",
    "origMAPhull = MAPhull"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "id": "3873aaa2-0c39-4ac0-99c3-92dd7c18c555",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Here is the main code to draw 4-wedge Home Districts for each populated HD centerpoint\n",
      "For each Home District, we will consider a wedge as one-from-full when it is within 1191.946 of targetWedgePop\n",
      "I am working on HD number 1190 of 8941 HDs.  Elapsed sec = 0\n",
      "I am working on HD number 1591 of 8941 HDs.  Elapsed sec = 32\n",
      "I am working on HD number 6987 of 8941 HDs.  Elapsed sec = 66\n",
      "I am working on HD number 7387 of 8941 HDs.  Elapsed sec = 101\n",
      "120.76 seconds elapsed. All done computing HD shapes and tractlists.  Here is a histogram of vtd usage.\n",
      "vtd avg and sd usage are 0.18106 0.01592\n"
     ]
    },
    {
     "data": {
      "image/png": "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jhw5osrKymEV7KLln//5n/Xmm2+qqqpKX/7yl3X48GGtWrVKaWlpzG8ENm3apOrqar377rv8XRAFnze/V69e1V/8xV/Isiy98sorA9DDvsetWAOMHTtWcXFxamtrCzvf1tb2uR/c74nly5dr7969eueddzRhwoTbvt5QE435bWpq0tmzZ/XAAw8oPj5e8fHxeu+997R161bFx8ers7OzL7o+JETrz29qaqqmTJkSdu6+++5Ta2trr685FEVrfr///e+rpKRECxYs0LRp0/T444/re9/7nsrLy2+3y0PK7czviy++qE2bNukXv/hF2MNTN9pF6+/0oSQa83vDjVD3u9/9TrW1tUas1kkEOyMkJCQoJydHdXV1oXPBYFB1dXXKy8vr9XUty9Ly5cv1k5/8RAcOHFBmZmZfdHfIicb8PvTQQ/qv//ovHT58OHTk5uZq0aJFOnz4sOLi4vqq+4NetP78Pvjggzdtz/PRRx9p0qRJvb7mUBSt+b18+bJiY8P/CYmLi1MwGOz1NYei3s7v5s2b9eyzz6qmpka5ublhr2VmZsrhcIRd0+/3q6Gh4bZ+z4aiaMyv9FmoO378uH75y19qzJgxUen/gBjopzfQN6qrq63ExERr586d1ocffmgtXbrUGjVqlOX1ei3LsqzHH3/cKikpCdW3t7dbLS0tVktLi5WammqtXr3aamlpsY4fPx6q+c53vmPZ7Xbr3XfftT799NPQcfny5X4f30CLxvz+oeH8VGw05rexsdGKj4+3nnvuOev48ePWm2++ad15553Wj3/8434f30CLxvwWFhZa48ePt/bu3WudOHHCeuutt6yxY8daa9as6ffxDbRI53fTpk1WQkKC9S//8i9hf7deunQprGbUqFHWT3/6U+s///M/rUcffdTKzMy0fv/73/f7+AZaX89vR0eH9Y1vfMOaMGGCdfjw4bCa9vb2ARljXyLYGeTll1+2Jk6caCUkJFgzZ860fv3rX4demzt3rlVYWBj69YkTJyxJNx1z584N1XT1uiTr9ddf779BDSJ9Pb9/aDgHO8uKzvz+7Gc/s6ZOnWolJiZakydPtnbs2NFPoxl8+np+/X6/tXLlSmvixImWzWaz7rnnHuvpp5824h/G3ohkfidNmtTl/JaVlYVqgsGgtWHDBislJcVKTEy0HnroIevYsWP9OKLBpS/n91Z/viVZ77zzTv8OLApiLGuYbhMOAABgGD5jBwAAYAiCHQAAgCEIdgAAAIYg2AEAABiCYAcAAGAIgh0AAIAhCHYAAACGINgBAAAYgmAHAABgCIIdAACAIQh2AAAAhiDYAQAAGOL/AD29Do524fn4AAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "here are your HD pops\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#continuing option 2 .......\n",
    "# BELOW modified Dec23 to use inter-unit distances and angles, (counties still wedgeIntersxn) otherwise similar to HD2\n",
    "# --THIS ESSENTIALLY TAKES THE ORIGINAL TRACT-BASED HD centerpoints, and redraws HD2 districts after convexifying corners and convex_hull\n",
    "print(\"Here is the main code to draw 4-wedge Home Districts for each populated HD centerpoint\") \n",
    "#this is a hybrid of HD2 and the organic code, in that all wedge tracts must be in a chain of neighboring counties\n",
    "#General sequence: draw 4 equi-angle wedges with random starting orientation.  If not all can fill a quarter aDP ...\n",
    "# ... find the closest map boundary point to the tract center point in the shortest wedge.  Orient the 0th wedge to face this point\n",
    "# ... determine the \"maxWedgePop\" for this short wedge and the other three wedges extended past the boundary\n",
    "# ...  if this results in only one short wedge, or opposing short wedges, adjust wedge angles\n",
    "# Regardless of whether we re-oriented or adjusted angles, compute each wedgePop for infinite radius\n",
    "#   ... then adjust other targetWedgePops if some found to be short.\n",
    "#   ... for non-shorted wedges, use bisection method to adjust radius to meet targetWedgePop\n",
    "#   ... once total HDpop within tolerance, add/subtract a tract fraction to fulfill HDpop\n",
    "#  create a list of fully used tracts per HD, save the tract# of the split tract and its fractional use\n",
    "#  Compute tractUse across all HDs at the end from the tractUsageLists.  Defer patching and partisan calcs to another code\n",
    "\n",
    "pi=3.1415926536\n",
    "#MAPhull = MAP.convex_hull #used for exitAngle calc.  Defined in an above block to allow user modification\n",
    "nWedges = 4  #number of wedges per home district polygon  \n",
    "avgWedgeAngle = 2.*pi / nWedges\n",
    "angle, angle2, wedgePoly = [0.]*nWedges, [0.]*nWedges, [dummyPoly]*nWedges  #start and stop angle of each wedge\n",
    "pt1, pt2, pt3 = [Point(0,0)]*nWedges, [Point(0,0)]*nWedges, [Point(0,0)]*nWedges #these four define the polygon wedge for a growing home district\n",
    "tractUse = [0.] * nHDs  #this will store how much we use this tract in ALL HD's vs. expectation\n",
    "HDtractList = [list()]*nHDs\n",
    "splitTractNo = [-999]*nHDs  #the tract that is only partially used to finish each HD\n",
    "splitTractUse = [0.]*nHDs  #and this is what fraction of the split tract is included\n",
    "HDvPop = [0.]*nHDs\n",
    "#HDweight = [tractPop[t] / (statePop - excludedPop) for t in range(nTracts)]  #relative weight of each drawn HD\n",
    "HDPoly1 = [dummyPoly]*nHDs  #final 4-wedge shape, unionized from blockgroups / tracts\n",
    "HDarea = [0.]*nHDs  #geographical area of each home district (after boundary trim)\n",
    "HDradius = [[0.]*nWedges for t in range(nHDs)] #final wedge length for each Home District wedge\n",
    "HDangle = [[0.]*nWedges for t in range(nHDs)] #final starting angle for each HD wedge\n",
    "angle0 = [-999.] * nHDs  #orientation of 0th wedge.  Random except re-oriented if we are near-boundary\n",
    "avgTractPop = statePop/len(populatedTractList)\n",
    "tolerPops = [0.8 * avgTractPop, 0.5 * np.max(tractPop)]  #threshold gap before adding one more unit to a wedge \n",
    "tolerPop = tolerPops[0]\n",
    "print(\"For each Home District, we will consider a wedge as one-from-full when it is within\",r3(tolerPops[0]),\"of targetWedgePop\")\n",
    "tractPrintInterval = 400  #for tracking progress\n",
    "#levelL = 0.36 #SEE ABOVE BLOCK #sqrt(pop) for angle=std  These two control distortion in wedge angles relative to wedgePop shortness\n",
    "#maxAngleRatio = 1.9  #SEE ABOVE BLOCK #for tightening tract weighting near boundaries  #HD2\n",
    "#maxAngle = 1.8*pi/2. #SEE ABOVE BLOCK  # limit to avoid wedges too close to half a pie\n",
    "minAdjRatio = 0.5  #min ratio of pop of adjacent wedge (to min wedge) to targetWedgePop to not consider this a corner HD\n",
    "maxUncap = 0.5 #the max ratio of uncaptured pop in a maxWedge vs. target wedge pop that we will not stretch to include (7/23)\n",
    "oppWt = 0.0    #the fraction of gap between normal targetWedgePop and the minWedgePop that we allow the opposite wedge to add to tgtPop = minWedgePop\n",
    "maxWedgePop = [0.] * nWedges  #wedge pop if we explode wedge to maximum radius\n",
    "printDebug = \"no\"\n",
    "codeStartTime = time.time()\n",
    "hdCPpop = [tractPop[t] for t in range(nHDs) ] #[HDweight[t] * statePop for t in range(nHDs)]\n",
    "countyHDlist = [list() for c in range(nCounties)]\n",
    "for t in populatedTractList:\n",
    "    countyHDlist[HDcountyNo[t]].append(t)\n",
    "\n",
    "for kkkj, t in enumerate(populatedTractList):  #range(nTracts) : #loop on each tract. \n",
    "    c = countyNo[t]\n",
    "    aDP = countyADP[c]  #THIS CODE - WE FLEX ADP BY COUNTY FOR WHOLE-DISTRICT COUNTIES\n",
    "    MAPhull = countyGeom[c].buffer(0.01*countyGeom[c].area**0.5)  #Hamilton and Franklin have separate map areas\n",
    "    hC = HDcountyNo[t]     #this tract's home county\n",
    "    HDtractList[t] = [t] #seed the list of tracts in this HD\n",
    "    wedgeList = [list() for w in range(nWedges)]   #list of each wedge's tracts, excluding home tract\n",
    "    barredList = list()  #list of wedge numbers for which we are barred from altering their targetWedgePops\n",
    "    if (kkkj % tractPrintInterval) == 0 : \n",
    "        print(\"I am working on HD number {0} of {1} HDs.  Elapsed sec = {2}\".format(t,nHDs,int(time.time()-codeStartTime) ) )  \n",
    "    nActiveWedges = nWedges #active wedges have not run over boundary\n",
    "    wedgePop = [0.]*nWedges\n",
    "    targetWedgePop = [aDP / nWedges]*nWedges  #at beginning, split districtPop equally among wedges\n",
    "    \n",
    "    angle0[t] = random.uniform(0,2.*pi)  #imparts random orientation to the midangle of our starting wedge\n",
    "    wedgeAngle = [avgWedgeAngle for w in range(nWedges) ] #reset to equi-angle when starting each tract\n",
    "    for nW in range(nWedges-1):\n",
    "        wedgeAngle[nW] += random.uniform(-0.0001,0.0001)  #this wiggle solves a later indexing ambiguity for corner tracts\n",
    "    wedgeAngle[nWedges-1] = 2.*pi - (np.sum(wedgeAngle) - wedgeAngle[nWedges-1] ) #squaring up to 2pi total\n",
    "    startAngle = [angle0[t] for nW in range(nWedges)]\n",
    "    for nW in range(1,nWedges):\n",
    "        startAngle[nW] = startAngle[nW-1] + wedgeAngle[nW-1]\n",
    "    endAngle = [startAngle[nW] + wedgeAngle[nW] for nW in range(nWedges)]\n",
    "    #  TRIAL LOOP TO SEE WHICH WEDGES CAN FILL TO TARGET POP w/equiangle wedges\n",
    "    maxWedgePoly = [ buildWedge(hdCP[t],startAngle[nW],endAngle[nW], maxD, xScale) for nW in range(nWedges) ]    \n",
    "    maxWedgePop =[ hdCPpop[t]*wedgeAngle[nW]/(2.*pi) for nW in range(nWedges) ]  #seed wedge with fraction of its home tract pop\n",
    "    willFill = [0] * nWedges #would this wedge meet its target with infinite radius?\n",
    "    for nW in range(nWedges):   #... then add in-county Pop and wedge Pop from contiguous chain of counties\n",
    "        iCP, Li   = getCountyWP(t,maxWedgePoly[nW], hdCP, hdCPpop, countyHDlist[hC])\n",
    "        #nonCP, Ln = getNonCWP(maxWedgePoly[nW], hC, tractCP, tractPop, countyGeom, countyPop, countyTractList, neighborCountyList) \n",
    "        nonCP, Ln = getNonCWP_c(startAngle[nW],endAngle[nW], hC, hdCP, hdCPpop, countyGeom, countyPop, countyHDlist,\n",
    "                                opt2nbrCtyList, uuDist[t], uuAngle[t], maxWedgePoly[nW])\n",
    "        maxWedgePop[nW] += (iCP + nonCP)\n",
    "        wedgeList[nW] = Li + Ln\n",
    "        if maxWedgePop[nW] > targetWedgePop[nW]:\n",
    "            willFill[nW] = 1\n",
    "     \n",
    "    if np.sum(willFill) < nWedges:  #at least one wedge couldn't reach its wedgePop target (went over boundary) ...\n",
    "        minW = maxWedgePop.index(np.min(maxWedgePop)) #.. so we will orient the 0th wedge to face the shortest wedgePop's closest boundary\n",
    "        exitAngle = getExitAngle(hdCP[t],maxWedgePoly[minW], MAPhull, startAngle[minW], endAngle[minW])\n",
    "        angle0[t] = exitAngle - 0.5*(2.*pi / nWedges)  #Now reset all angles based on new starting orientation.  All wedge angles still equal\n",
    "        startAngle = [angle0[t] for nW in range(nWedges)]\n",
    "        for nW in range(1,nWedges):\n",
    "            startAngle[nW] = startAngle[nW-1] + wedgeAngle[nW-1]\n",
    "        endAngle = [startAngle[nW] + wedgeAngle[nW] for nW in range(nWedges)]\n",
    "        maxWedgePoly = [buildWedge(hdCP[t],startAngle[nW],endAngle[nW], maxD, xScale) for nW in range(nWedges) ]\n",
    "        \n",
    "        willFill = [0]*nWedges\n",
    "        #Now re-calc each maxWedgePop if we extend wedge's radius past map with new angle0 orientation (wedge angles still constant)\n",
    "        maxWedgePop =[ hdCPpop[t]*wedgeAngle[nW]/(2.*pi) for nW in range(nWedges) ]  #seed wedge with fraction of its home tract pop        \n",
    "        for nW in range(nWedges):   #... then add in-county and nonCounty wedge Pop from contiguous chain of counties\n",
    "            iCP, Li   = getCountyWP(t,maxWedgePoly[nW], hdCP, hdCPpop, countyHDlist[hC])\n",
    "            #nonCP, Ln = getNonCWP(maxWedgePoly[nW], hC, tractCP, tractPop, countyGeom, countyPop, countyTractList, neighborCountyList)\n",
    "            nonCP, Ln = getNonCWP_c(startAngle[nW],endAngle[nW], hC, hdCP, hdCPpop, countyGeom, countyPop, countyHDlist,\n",
    "                                    opt2nbrCtyList, uuDist[t], uuAngle[t], maxWedgePoly[nW])\n",
    "            maxWedgePop[nW] += (iCP + nonCP)\n",
    "            wedgeList[nW] = Li + Ln\n",
    "            if maxWedgePop[nW] > targetWedgePop[nW]:\n",
    "                willFill[nW] = 1       \n",
    "    \n",
    "    if np.sum(willFill) < nWedges:  #check if we need to modify wedge angles after possible re-orientation.  \n",
    "        # If so, re-draw maxWedgePoly's, re-calc maxWedgePops\n",
    "        nUnfilledWedges = nWedges - np.sum(willFill)\n",
    "        isChange, newInclA = getNewAngles(maxWedgePop, targetWedgePop, aDP, levelL, minAdjRatio, maxAngle, maxAngleRatio, nUnfilledWedges )\n",
    "        if isChange: #no longer equi-angle\n",
    "            newStartAngle = [0.5*(startAngle[nW]+endAngle[nW]) - 0.5*newInclA[nW] for nW in range(nWedges) ]\n",
    "            newEndAngle =   [0.5*(startAngle[nW]+endAngle[nW]) + 0.5*newInclA[nW] for nW in range(nWedges) ]\n",
    "            startAngle, endAngle, wedgeAngle = newStartAngle.copy(), newEndAngle.copy(), newInclA.copy()\n",
    "            maxWedgePoly = [ buildWedge(hdCP[t],startAngle[nW],endAngle[nW], \n",
    "                                        maxD/math.cos(0.5*wedgeAngle[nW]), xScale ) for nW in range(nWedges) ]\n",
    "            willFill = [0]*nWedges\n",
    "            #Now re-calc each maxWedgePop if we extend wedge's radius past map with new angle0 orientation and new wedge angles\n",
    "            maxWedgePop =[ hdCPpop[t]*wedgeAngle[nW]/(2.*pi) for nW in range(nWedges) ]  #seed wedge with fraction of its home tract pop\n",
    "            for nW in range(nWedges):   #... then add in-county Pop and wedge Pop from contiguous chain of counties\n",
    "                iCP, Li   = getCountyWP(t,maxWedgePoly[nW], hdCP, hdCPpop, countyHDlist[hC])                \n",
    "                #nonCP, Ln = getNonCWP(maxWedgePoly[nW], hC, tractCP, tractPop, countyGeom, countyPop, countyTractList, neighborCountyList)\n",
    "                nonCP, Ln = getNonCWP_c(startAngle[nW],endAngle[nW], hC, hdCP, hdCPpop, countyGeom, countyPop, countyHDlist,\n",
    "                                        opt2nbrCtyList, uuDist[t], uuAngle[t], maxWedgePoly[nW])\n",
    "                maxWedgePop[nW] += (iCP + nonCP)\n",
    "                wedgeList[nW] = Li + Ln\n",
    "            minW = wedgeAngle.index(np.max(wedgeAngle)) #should be 0th wedge, but playing it safe.  This is the 1st wide-angle wedge ..\n",
    "            oppW = int(int(minW+nWedges/2)%nWedges)   #and its opposite\n",
    "            if maxWedgePop[minW] > maxWedgePop[oppW] and maxWedgePop[oppW] < aDP / nWedges:  #minW and oppW are flipped after inclA adjmt\n",
    "                oppW = minW\n",
    "                minW = int(int(minW+nWedges/2)%nWedges)\n",
    "            if maxWedgePop[minW] < targetWedgePop[oppW]:  #we need to constrain oppW in this HD2 implementation; redistribute tgt to adjacents\n",
    "                maxNonOppW = np.sum(maxWedgePop) - maxWedgePop[oppW] #...but only if other wedges can pick up slack; need to check\n",
    "                minOppWedgePop = aDP - maxNonOppW  #cannot set oppW target below this or we won't reach aDP across all wedges\n",
    "                barredList = [oppW]\n",
    "                targetWedgePop[oppW] = max(minOppWedgePop, maxWedgePop[minW] + oppWt * (targetWedgePop[oppW] - maxWedgePop[minW]) )\n",
    "                tWPgap = aDP / float(nWedges) - targetWedgePop[oppW] \n",
    "                for nW in range(nWedges):\n",
    "                    if nW != minW and nW != oppW:\n",
    "                        targetWedgePop[nW] += tWPgap/float(nWedges - 2.)  #if oppW target is limited, allot to adjacent wedges\n",
    "            for nW in range(nWedges):\n",
    "                if maxWedgePop[nW] > targetWedgePop[nW]:\n",
    "                    willFill[nW] = 1  \n",
    "    \n",
    "    if abs(np.sum(targetWedgePop) / aDP - 1.) > 0.001:\n",
    "        raise Exception(\"FAIL! Our target wedgepops\",targetWedgePop, np.sum(targetWedgePop),\"no longer add up to\",aDP)\n",
    "    \n",
    "    if np.sum(willFill) == nWedges:  #all wedges will fill.  Will any leave a small near-boundary remnant?  If so, pick up smallest remnant\n",
    "        remnantWedgePopFrac = [ ( maxWedgePop[w] - targetWedgePop[w] )/targetWedgePop[w] for w in range(nWedges) ]\n",
    "        if np.min(remnantWedgePopFrac) < maxUncap :  #lessen tWP's of *adjacent* wedges, then increase this wedge's target --> max\n",
    "            minW = remnantWedgePopFrac.index(np.min(remnantWedgePopFrac))\n",
    "            oppW = int((minW+nWedges/2)%nWedges)\n",
    "            #print(\"filling to boundary for tract,wedge, tWP, mWP =\",t,minW, r3(targetWedgePop[minW]), maxWedgePop[minW])\n",
    "            for nW in range(nWedges):\n",
    "                if nW != minW and nW != oppW:\n",
    "                    targetWedgePop[nW] -= (remnantWedgePopFrac[minW] * targetWedgePop[minW] ) / (nWedges - 2.)\n",
    "            targetWedgePop[minW] = maxWedgePop[minW]\n",
    "            #       OK, READY TO SOLVE FOR NON-FILLED WEDGE SIZES once we adjust targets for unfilled wedges\n",
    "    #print(t,\" prior to rebalanceTWP call, mWPs, tWPs are\",maxWedgePop, targetWedgePop)\n",
    "    targetWedgePop, willFill = rebalanceTWPs(maxWedgePop, targetWedgePop, barredList)\n",
    "    #if np.max(targetWedgePop) - np.min(targetWedgePop) > 0.02 * aDP: #debug\n",
    "    #    print(\"for tract\",t,\",  After rebalancing but before tweaks for blocky pop adds: willFill, targetWedgePops and maxWedgePops are ...\")\n",
    "    #    for w in range(nWedges):\n",
    "    #        print(w, willFill[w],r3(targetWedgePop[w]),int(maxWedgePop[w]) )\n",
    "    for w in range(nWedges):  #WHEW!  WE CAN FINALLY ASSIGN ALL WEDGES' POPS AND TRACTLISTS\n",
    "        loop = 0\n",
    "        if willFill[w] == 0:  #wedge is maxed out\n",
    "            wedgePop[w] = maxWedgePop[w]\n",
    "            #wedgeList[w] = ...  #we already captured this list = maxWedge list\n",
    "            HDradius[t][w] = maxD/math.cos(0.5*wedgeAngle[w])\n",
    "        else:  #need to solve for wedge radius to meet targetPop.  Use bisection as scipy minimize no faster\n",
    "            HDcpWP = hdCPpop[t] * wedgeAngle[w]/(2.*pi)\n",
    "            nonHDcpTWP = targetWedgePop[w] - HDcpWP\n",
    "            #wedgePop[w], wedgeList[w], HDradius[t][w] = solveWedgeB(nontractTWP,t,hC,maxWedgePoly[w],tolerPop,tractCP, tractPop,\n",
    "            #                                                        countyNo,countyTractList,countyGeom, neighborCountyList,uuDist[t])\n",
    "            wedgePop[w], wedgeList[w], HDradius[t][w] = solveWedgeC(nonHDcpTWP,t,hC, maxWedgePoly[w],startAngle[w], endAngle[w], tolerPop,\n",
    "                                                                    hdCP, hdCPpop,HDcountyNo, countyHDlist,countyGeom,\n",
    "                                                                    opt2nbrCtyList,uuDist[t],uuAngle[t])\n",
    "            popGap = nonHDcpTWP - wedgePop[w]  #gap between target and solved wedge pop; can be negative\n",
    "            notYetAdjusted, nextW = True, w+1  #looking to adjust a later wedge's target pop to minimize drift in total HD pop\n",
    "            while notYetAdjusted and nextW < nWedges:\n",
    "                if willFill[nextW] == 1 and maxWedgePop[nextW] > targetWedgePop[nextW] + popGap :  #can accommodate\n",
    "                    targetWedgePop[nextW] += popGap\n",
    "                    notYetAdjusted = False\n",
    "                nextW +=1          \n",
    "\n",
    "        HDangle[t][w] = startAngle[w]\n",
    "    #print(t,\"tract. After TWP adjustment, targetWedgePops are\",targetWedgePop)\n",
    "    HDtractList[t] = [t]\n",
    "    totPop = hdCPpop[t]\n",
    "    for nW in range(nWedges):\n",
    "        for tt in wedgeList[nW]:\n",
    "            HDtractList[t].append(tt)  #building the list of tracts in the Home District  (we'll keep up with below changes)\n",
    "            totPop += hdCPpop[tt]\n",
    "    offsetPop = totPop - aDP  #we have solved for all wedge radii to get each within one tractPop of target ... \n",
    "    HDvPop[t] = totPop\n",
    "    #if offsetPop > 0:   #... now include a splitPoly to nail the avg District Pop\n",
    "    #    isOver = True  #we slightly overshot.  ID the farthest-away tract for split-jettison\n",
    "    #    splitTractNo[t], splitTractUse[t] = getPartialTract(t, HDtractList[t], offsetPop, uuDist[t], hdCPpop, neighborList)\n",
    "    #    HDvPop[t] = totPop - (1. - splitTractUse[t]) * tractPop[splitTractNo[t]]\n",
    "    #if offsetPop < 0:\n",
    "    #    isOver = False  #we have undershot.  Pick up the nearest contiguous tract that can be split to fill the gap\n",
    "    #    splitTractNo[t], splitTractUse[t] = getPartialTract(t, HDtractList[t], offsetPop, uuDist[t], tractPop, neighborList)\n",
    "    #    HDtractList[t].append(splitTractNo[t])\n",
    "    #    HDvPop[t] = totPop + splitTractUse[t]*tractPop[splitTractNo[t]]       \n",
    "    #if abs(1. - HDvPop[t]/aDP) > 0.005 :  #something went wrong with pop assignation for this HD\n",
    "    #    print(\"WARNING! Total Home District pop was\",HDvPop[t],\"vs target\",aDP,\"for tract\",t)   ##### hdCP topology not yet known; skip partial\n",
    "        \n",
    "    HDPoly1[t] = dummyPoly  #tractGeom[t] #skip constructing the HD poly shape.  Do compute area of the Home District, including final partial\n",
    "    HDarea[t] = 0.\n",
    "    for tt in HDtractList[t]:\n",
    "        if tt == splitTractNo[t]:\n",
    "            tractUse[tt] += nDistricts * HDweight[t] * splitTractUse[t] \n",
    "            #HDarea[t]   += tractArea[tt] * splitTractUse[t]  #these are original (nonsquished) areas\n",
    "            \n",
    "        else:\n",
    "            tractUse[tt] += nDistricts * HDweight[t]\n",
    "            #HDarea[t]    += tractArea[tt]\n",
    "            #HDPoly1[t] = HDPoly1[t].union(tractGeom[tt])\n",
    "    HDPoly1[t] = buildPoly(hdCP[t],HDradius[t], HDangle[t] )\n",
    "    #HDarea[t] = HDPoly1[t].area + splitTractUse[t] * tractArea[splitTractNo[t]]  \n",
    "    #if splitTractUse[t] > 0.5:\n",
    "    #    HDPoly1[t] = HDPoly1[t].union(tractGeom[splitTractNo[t]])\n",
    "                          \n",
    "    #ALL DONE ESTABLISHING THE FINAL HDTRACTLIST.  FINALIZE STATS\n",
    "totalTime = time.time() - codeStartTime\n",
    "print(r3(totalTime),\"seconds elapsed. All done computing HD shapes and tractlists.  Here is a histogram of vtd usage.\")\n",
    "n_bins=50\n",
    "popTractUse, plotWts = [tractUse[t] for t in populatedTractList], [HDweight[t] for t in populatedTractList]\n",
    "\n",
    "origHDuseAvg, origHDuseSD = getWeightedAvgAndSD(tractUse,HDweight)\n",
    "print(\"vtd avg and sd usage are\",r5(origHDuseAvg), r5(origHDuseSD) )\n",
    "\n",
    "fig, ax = plt.subplots(tight_layout=True)\n",
    "ax.hist(popTractUse, bins=n_bins, weights=plotWts)\n",
    "plt.show()\n",
    "HDvPop = [np.sum([hdCPpop[tt] for tt in HDtractList[t]]) for t in range(nHDs)]\n",
    "plt.scatter([hdCPpop[t] for t in populatedTractList],[HDvPop[t] for t in populatedTractList] )\n",
    "print(\"here are your HD pops\")\n",
    "plt.show()\n",
    "origHDHDtractList = [HDtractList[t].copy() for t in range(nHDs)] #save for posterity"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "id": "b7f36a0f-a3c6-4b07-aecd-9e010b02918f",
   "metadata": {},
   "outputs": [],
   "source": [
    "DATE = \"05Jan\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "id": "37c238bb-b340-431b-ad11-95e4409d9699",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Now we will write the polygon-based results to a file\n"
     ]
    }
   ],
   "source": [
    "#last block of option 2 (i.e. generating polygonal HDs from scratch)\n",
    "print(\"Now we will write the polygon-based results to a file\")\n",
    "tractNo = [t for t in range(nHDs) ]\n",
    "HDangle0 = [HDangle[t][0] for t in range(nHDs) ]\n",
    "HDangle1 = [HDangle[t][1] for t in range(nHDs) ]\n",
    "HDangle2 = [HDangle[t][2] for t in range(nHDs) ]\n",
    "HDangle3 = [HDangle[t][3] for t in range(nHDs) ]\n",
    "HDradius0 = [HDradius[t][0] for t in range(nHDs)]\n",
    "HDradius1 = [HDradius[t][1] for t in range(nHDs)]\n",
    "HDradius2 = [HDradius[t][2] for t in range(nHDs)]\n",
    "HDradius3 = [HDradius[t][3] for t in range(nHDs)]\n",
    "hdCPx, hdCPy =   [hdCP[t].x for t in range(nHDs)], [hdCP[t].y for t in range(nHDs)]\n",
    "\n",
    "paramList = [\"STATE\",\"statePop\",\"nDistricts\",\"nHDs\",\"nWedges\",\"popn-toler\",\"levelL\", \"maxAngleRatio\",\n",
    "             \"maxAngle\",\"minAdjRatio\",\"maxUncap\", \"oppWt\", \"calc sec\",\"xScale\",\"outputs...\"]\n",
    "paramValues = [STATE,statePop, nDistricts, nHDs, nWedges, tolerPop, levelL, maxAngleRatio, maxAngle, minAdjRatio, maxUncap,\n",
    "               oppWt, totalTime, xScale, -777]\n",
    "for i in range(nHDs-len(paramList)):\n",
    "    paramList.append(\".\")\n",
    "    paramValues.append(-99)  #so all columns have same number of entries, even the parameter list\n",
    "HDdf = pd.DataFrame( {\"paramList\": paramList,\"paramValues\":paramValues,\"countyNo\":HDcountyNo,\n",
    "                    \"tractNo\":tractNo,\"centroid x\":hdCPx,\"centroid y\":hdCPy,\"tractPop\":hdCPpop,\n",
    "                    \"HDweight\":HDweight,\"HD-pop\":HDvPop,\"HDarea\":HDarea, \"countyNo\":countyNo,\n",
    "                    \"startAngle\":angle0,\"HDangle0\":HDangle0,\"HDangle1\":HDangle1,\"HDangle2\":HDangle2,\"HDangle3\":HDangle3,\n",
    "                    \"HDradius0\":HDradius0,\"HDradius1\":HDradius1,\"HDradius2\":HDradius2, \"HDradius3\":HDradius3,\"tractUse\":tractUse,\n",
    "                    \"splitTractNo\":splitTractNo,\"splitTractUse\":splitTractUse,\"HDtractList\":HDtractList} ) \n",
    "\n",
    "outname = \"FrankHamLegislconvexHD2_\"+str(int(nDistricts))+\"nW4_\"+DATE+\".csv\"  #solveWedgeC\n",
    "outpath = \"2024state_HD_output/\"+outname\n",
    "HDdf.to_csv(outpath)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "id": "075013a3-f3ee-4a44-ac4a-27a7492e027a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "./2024state_HD_output/FrankHamLegislconvexHD2_18nW4_05Jan.csv\n"
     ]
    }
   ],
   "source": [
    "print(\"./\"+outpath)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "af22eba0-8e05-43e7-b96b-6aedab016957",
   "metadata": {},
   "outputs": [],
   "source": [
    "#see early states for continuing w/option 1.  NC and later use option 3 ....\n",
    "#if this is a cold restart, would need to read in unit topology before below block"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "id": "8d5f678f-c2df-4ee7-bafe-fd75ba2cb42e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "lead = 'option3' - create HDunitLists based on each HD's tractList, with in-out for multiVTD units\n"
     ]
    }
   ],
   "source": [
    "#OPTION 3 \n",
    "print(\"lead = 'option3' - create HDunitLists based on each HD's tractList, with in-out for multiVTD units\")\n",
    "###### add stuff to read in file if a cold restart ########\n",
    "#HDtractListString = shapeDF[\"HDtractList\"]\n",
    "#HDtractList = [ast.literal_eval(HDtractListString[t]) for t in range(nHDs)]\n",
    "nCCBs = len(CCBlist)\n",
    "CCBpopFrac = [[0. for j in range(nCCBs) ]  for t in range(nHDs)]\n",
    "\n",
    "#unitParentVTDno = [-999 for u in range(nUnits)]\n",
    "#for u in range(nUnits):    \n",
    "#    if allUnits[u] %1 == 0:\n",
    "#        v = allUnits[u]\n",
    "#        unitParentVTDno[u] = parentVTDno[v]\n",
    "              "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "id": "ec034144-b3dc-4b72-9350-6d85cabcb8a2",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Continuing option3, now assigning each HD's units (excluding CCB's) based on the captured whole vtd's\n",
      "working on vtd --> unit conversion for HD 1 last HD had pop 0.0\n",
      "working on vtd --> unit conversion for HD 1001 last HD had pop 0.0\n",
      "working on vtd --> unit conversion for HD 2001 last HD had pop 0.0\n",
      "working on vtd --> unit conversion for HD 3001 last HD had pop 0.0\n",
      "working on vtd --> unit conversion for HD 4001 last HD had pop 0.0\n",
      "working on vtd --> unit conversion for HD 5001 last HD had pop 0.0\n",
      "working on vtd --> unit conversion for HD 6001 last HD had pop 0.0\n",
      "working on vtd --> unit conversion for HD 7001 last HD had pop 119000.285\n",
      "working on vtd --> unit conversion for HD 8001 last HD had pop 0.0\n"
     ]
    }
   ],
   "source": [
    "print(\"Continuing option3, now assigning each HD's units (excluding CCB's) based on the captured whole vtd's\" )\n",
    "HDunitList = [ list() for t in range(nHDs) ]\n",
    "for t in range(nHDs):\n",
    "    if t %1000 == 1:\n",
    "        print(\"working on vtd --> unit conversion for HD\",t,\"last HD had pop\",r3( np.sum([unitPop[u] for u in HDunitList[t-1]]) ) )\n",
    "    capturedCountyPop = [0. for c in range(nCounties)]\n",
    "    capturedCCBpop = [0. for i in range(nCCBs)]\n",
    "    for v in HDtractList[t]:\n",
    "        c = HDcountyNo[v]\n",
    "        if c in range(nCounties):  #we assigned countyno = -999 to unpopulated tracts\n",
    "            if c in unitCounties:\n",
    "                capturedCountyPop[c] += tractPop[v]\n",
    "            elif c in allFusedCounties:\n",
    "                for i, L in enumerate(CCBlist):\n",
    "                    if c in L:\n",
    "                        capturedCCBpop[i] += tractPop[v]\n",
    "            else:  #this vtd not part of a unit or fused county.  Could be split into fragments\n",
    "                for u in countyUnitList[c]:\n",
    "                    if unitParentVTDno[u] == v :  #we assign all units = vtd fragments from this HDTL-captured vtd\n",
    "                        HDunitList[t].append(u)\n",
    "    for c in unitCounties:\n",
    "        if capturedCountyPop[c] > 0.5 * countyPop[c]:\n",
    "            HDunitList[t].append(allUnits.index(c+0.5))\n",
    "    for i in range(nCCBs):  #don't yet assign in/out CCBs.  We'll do so in below block\n",
    "        CCBpopFrac[t][i] = capturedCCBpop[i] / CCBpop[i]\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "id": "0d38eb0e-b516-4fd4-bb9e-6ca0eecfa772",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Continuing option 3. Now assign CCB units.  For each, work from most to least underpopped\n"
     ]
    }
   ],
   "source": [
    "print(\"Continuing option 3. Now assign CCB units.  For each, work from most to least underpopped\")\n",
    "#previously, we went from most-used to least-used CCB vtds until each has unit use\")\n",
    "minCCBuse = 1.02\n",
    "if nCCBs > 0: #skip if not\n",
    "    print(\"currently, we force each CCB's unit use to be\",minCCBuse)\n",
    "    minCCBuse = float(input(\"enter updated value, e.g. 1.02 to hedge against later losses w/contiguity patching\"))\n",
    "unitUse = [0. for u in range(nUnits)]\n",
    "for t in range(nHDs):\n",
    "    for u in HDunitList[t]:\n",
    "        unitUse[u] += HDweight[t] * nDistricts\n",
    "CCBuse = [0. for i in range(nCCBs)]\n",
    "for j in range(nCCBs):\n",
    "    postCCBaddPops = list()\n",
    "    unitNo = allUnits.index(j+0.25)\n",
    "    #ccbNbrSet = set(unitNbrs[unitNo])\n",
    "    #ccbFrac = [-1.*CCBpopFrac[t][j] for t in range(nHDs) ]  # -1 to go from most- to least-used\n",
    "    #idx = np.argsort(ccbFrac)\n",
    "    preCCBpop = [np.sum([unitPop[u] for u in HDunitList[t] ]) for t in CCBaddCandidates[j]]\n",
    "    idx = np.argsort(preCCBpop)\n",
    "    i = 0\n",
    "    t = CCBaddCandidates[j][idx[i]] #idx[i]\n",
    "    while CCBuse[j] < minCCBuse  and i < len(CCBaddCandidates[j]) :  #and CCBpopFrac[t][j] > 0:\n",
    "        t = CCBaddCandidates[j][idx[i]] #idx[i]\n",
    "        CCBuse[j] += HDweight[t] * nDistricts\n",
    "        HDunitList[t].append(unitNo)\n",
    "        postCCBaddPops.append(np.sum([unitPop[u] for u in HDunitList[t] ]))\n",
    "        i +=1\n",
    "    unitUse[unitNo] = CCBuse[j]\n",
    "    print(\"final unit use of CCB\",j, \"is\",r5(CCBuse[j]),\"; here is a histogram of HDpop using this CCB\")\n",
    "    plt.hist(postCCBaddPops)\n",
    "    plt.axvline(aDP,ls=\"--\")\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "cf747d9c-cf6d-420e-9c3c-6723619586ac",
   "metadata": {},
   "outputs": [],
   "source": [
    "#end of preliminaries for \"option 3\" - converting HDtractlists to unit lists instead of option 2's geometric probing"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "id": "b46e12f7-2653-454d-ab22-35a91ab0b9df",
   "metadata": {},
   "outputs": [],
   "source": [
    "HDuPop = [np.sum([unitPop[u] for u in HDunitList[t]]) for t in range(nHDs) ]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "id": "26102ca2-79c1-48db-b873-7fa3a1553911",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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yus/evRoxcfHa/bs2Tp58qRqa2v1yCOPqLGxUUeOHJHE+neWU6dOafbs2Zo4caLzD89dqLVt/pP1D1//c8Hrf8cQKJ3kiy++0Jo1a8LOnuD8mzNnjmpqavTGG2/ovffeU15eniZMmKCKiopIT+2i17t3b61bt04bNmxQQkKCvF6vampqNGzYMEVF8dLSWRoaGjRhwgQZY7RixYpIT+eSw/pHTsT+LZ6LzZ/+9CedPHlSU6ZMCdvu8/laXG3d/C4Hn8/n/PnVdz5UVVXJ4/GoR48eio6OVnR0dKtjmo9xKfr444/1m9/8Rnv27NE111wjSRoyZIj+9re/admyZVq5cqV8Pl+LC8lOnz6tY8eOnXX9m/edacylvP6SlJmZqY8//lifffaZYmJilJiYKJ/PpyuvvFKSWP8Oav7m+Omnn2rr1q1hP71fqLVt/rOqqkpXXHFF2JihQ4d2wrO015nW/1zw+t8x/JjTSZ577jndeeed6t27d9h2v9+vioqKsBeSwsJCeTwepaenO2OKiorC7ldYWCi/3y9Jio2N1fDhw8PGNDU1qaioyBlzKTp58qQktfhpPTo62nkXid/vV01NjUpLS539W7duVVNTk0aNGuWM2b59uxoaGpwxhYWFuvrqq3XZZZc5Y870d3Spu/zyy5WYmKitW7equrraebcD699+zd8c9+/frzfeeEO9evUK23+h1rZfv37y+XxhY0KhkEpKSi7p9T8XvP53UKSv0o2k48ePm7KyMlNWVmYkmSeffNKUlZU5V2l//vnnpqyszLz22mtGklm7dq0pKyszR44cCTvO/v37jcvlMps2bWrxGKdPnzbXXnutyczMNOXl5Wbz5s2md+/eJj8/3xnzz3/+08TFxZlZs2aZDz74wCxbtsxER0ebzZs3O2PWrl1r3G63KSgoMPv27TPTpk0ziYmJYVeHdzUdXf/6+nrTv39/c8MNN5iSkhLz0UcfmSeeeMK4XC7z2muvOY9z2223mW9961umpKTEvP322+aqq64yEydOdPbX1NSYlJQUM3nyZLNnzx6zdu1aExcXZ5555hlnzDvvvGNiYmLME088YT744AMzb948061bN1NRUXGBVqvzdcb//88//7wpLi42H330kfn9739vkpKSTF5eXtjjsP6tO9P619fXmzvvvNP06dPHlJeXmyNHjji3/35HzoVa20WLFpnExETz6quvmvfff9/cddddpl+/fuaLL764MIt1HnTG+n/66aemrKzMLFiwwCQkJDjHO378uDGG1/+OuqQD5c033zSSWtxycnKMMV++day1/fPmzQs7Tn5+vklLSzONjY2tPs4nn3xixowZY3r06GEuv/xy8/DDD5uGhoYWcxk6dKiJjY01V155pVm1alWL4zz99NOmb9++JjY21owcOdK8++67nbEMEdMZ6/+Pf/zDjBs3ziQnJ5u4uDgzePDgFm87/vzzz83EiRNNQkKC8Xg85r777nNeQJr9/e9/N9dff71xu93ma1/7mlm0aFGL+b700kvmm9/8pomNjTXXXHNNWAR1RZ2x/rNnzzYpKSmmW7du5qqrrjK//OUvTVNTU9jjsP6tO9P6N7+1u7Xbm2++6RzjQq1tU1OTmTNnjklJSTFut9vceuutprKy8rysy4XSGeufk5Nz1jG8/refyxhjOnwaBgAAoBNxDQoAALAOgQIAAKxDoAAAAOsQKAAAwDoECgAAsA6BAgAArEOgAAAA6xAoAADAOgQKAACwDoECAACsQ6AAAADrECgAAMA6/w+AAEStzPhrwQAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "unit based vs. vtd-based pops\n"
     ]
    },
    {
     "data": {
      "image/png": "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Y5tg1NzcDADdRh9CQkKMu5ZSU1PR2NiIQ4cOGY+XlJRAr9dj/PjxxjalpaVob283tikuLsZ1112H/v37G9tY+zMKdjExMYiMjERJSQnOnj1r3FnD5+8aw4/w8ePHsXv3bkRHR5sc99bzTUhIgFKpNGmj1Wpx4MCBHv1nYOv524O/AS7w9WrtYHDx4kVRWVkpKisrBQDxP//zP6KystK4I+D8+fOisrJS7Nq1SwAQH374oaisrBQNDQ0m1zl+/LiQSCTi008/7XaPK1euiNGjR4v09HRRVVUlioqKxIABA8TKlSuNbb7//nsRHh4unnzySfHNN9+IvLw8ERISIoqKioxtPvzwQxEWFiYKCgpETU2NeOihh0RkZKTJToRA4+rzb2trE8OHDxeTJ08WBw4cECdOnBB//OMfhUQiEbt27TLeZ9q0aeLGG28UBw4cEHv37hUjRowQc+fONR5vbGwUgwYNEgsWLBDV1dXiww8/FOHh4eLPf/6zsc2+fftEr169xB//+EfxzTffiJycHNG7d29x5MgRLz0t93PH//7/+te/irKyMnHixAnx3nvviaioKLFixQqT+/D5W2btz6CtrU3MmDFDXH311aKqqko0NDQYX513gHnr+b744osiMjJSbN++XRw+fFjceeedIiEhQVy+fNk7D8sD3PH8T548KSorK0Vubq7o27ev8XoXL14UQvA3wBUMhLzg888/FwC6vRYtWiSE6NgOae54Tk6OyXVWrlwp4uPjhU6nM3uf+vp6cccdd4g+ffqImJgY8fvf/160t7d360tSUpIIDQ0V11xzjXjnnXe6Xef1118XgwcPFqGhoSIlJUV89dVX7ngMPuOO5//dd9+Ju+++WwwcOFCEh4eLG264odt2+vPnz4u5c+eKvn37CrlcLu677z7jX1IG//rXv8SkSZNEWFiYuOqqq8SLL77Yrb8ff/yxuPbaa0VoaKgYNWqUSbAViNzx/LOzs8WgQYNE7969xYgRI8TLL78s9Hq9yX34/C2z9mdgSFtg7vX5558br+Gt56vX68Xq1avFoEGDRFhYmLj99tvFsWPHPPJcvMUdz3/RokU22/A3wDkSIYRweViJiIiIKABxjRAREREFLQZCREREFLQYCBEREVHQYiBEREREQYuBEBEREQUtBkJEREQUtBgIERERUdBiIERERERBi4EQERERBS0GQkRERBS0GAgRERFR0GIgREREREHr/wNGz68y4kahBgAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist([np.sum([tractPop[v] for v in HDtractList[t] ]) for t in popHDlist])\n",
    "plt.hist([HDvPop[t] for t in popHDlist] )\n",
    "plt.show()\n",
    "plt.scatter([HDvPop[t] for t in popHDlist],[HDuPop[t] for t in popHDlist])\n",
    "print(\"unit based vs. vtd-based pops\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "id": "8aa829d7-a235-4ab8-a728-1c2104c872c0",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "for these isolated county HD maps, we must renormalize HD weights\n"
     ]
    }
   ],
   "source": [
    "print(\"for these isolated county HD maps, we must renormalize HD weights\")\n",
    "HDweight = [0.]*nHDs\n",
    "for t in popHDlist:\n",
    "    c = countyNo[t]\n",
    "    HDweight[t] = tractPop[t]/countyADP[c]\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "id": "dc26d08c-a5d9-4e7e-9da5-ae98cf658a3a",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Here is the histogram of HD pops relative to 'county-specific) aDP\n"
     ]
    },
    {
     "data": {
      "image/png": "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+XzBLSUlJdLTBAAARjzOOdfszh6PNm/erKlTp4bVb8KECerTp49eeumlen9eU1Ojmpqa4OtAIKCUlBRVVVUpLi6uudNFE/RbsN16CrhKfboky3oKANqYQCAgn8/X6O/vsO8ZaQljxozRnj17Gvy51+uV1+ttxRkBaEwkgypBB+jYTD5npLS0VElJSRaHBgAAV5mwV0bOnDmjI0eOBF8fPXpUpaWl6t69u/r06aP8/Hx99tlnevHFFyVJy5cvV2pqqm666SZ98803ev7557Vz50698cYbLVcFAABos8IOIwcOHNDtt98efJ2XlydJys7O1urVq1VRUaHy8vLgz8+fP6/f/OY3+uyzz9S1a1fdfPPNevPNN0PGAAAAHdcV3cDaWpp6AwyuHDewwgL3jADtU1N/f/PdNAAAwBRhBAAAmCKMAAAAU4QRAABgijACAABMEUYAAIApwggAADBFGAEAAKYIIwAAwBRhBAAAmCKMAAAAU4QRAABgijACAABMEUYAAIApwggAADBFGAEAAKYIIwAAwBRhBAAAmCKMAAAAU4QRAABgijACAABMEUYAAIApwggAADBFGAEAAKYIIwAAwBRhBAAAmCKMAAAAU4QRAABgijACAABMEUYAAIApwggAADBFGAEAAKYIIwAAwBRhBAAAmCKMAAAAU4QRAABgijACAABMEUYAAIApwggAADBFGAEAAKYIIwAAwNQ11hMAgH4Ltkdk3E+XZEVkXAAti5URAABgijACAABMEUYAAIApwggAADBFGAEAAKYIIwAAwBRhBAAAmCKMAAAAU4QRAABgijACAABMhR1Gdu/erbvuukvJycnyeDzasmVLo32Ki4s1atQoeb1eDRw4UKtXr27GVAEAQHsUdhiprq7W8OHDtWLFiia1P3r0qLKysnT77bertLRUc+fO1QMPPKDXX3897MkCAID2J+wvyps8ebImT57c5PYrV65Uamqqli5dKkkaPHiw9uzZoz/96U/KzMwM9/AAAKCdifg9IyUlJcrIyAjZl5mZqZKSkgb71NTUKBAIhGwAAKB9ingY8fv9SkhICNmXkJCgQCCgc+fO1dunoKBAPp8vuKWkpER6mgAAwMhV+TRNfn6+qqqqgtvx48etpwQAACIk7HtGwpWYmKjKysqQfZWVlYqLi1NMTEy9fbxer7xeb6SnBgAArgIRXxlJT09X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o9XrakxT6n7ppZd0//33q1evXurcubNGjRql6dOn6+DBg4YzvzItVXdbO99ovgcffDD438OGDVNSUpLuuOMOffzxxxowYIDhzBAJ7f3azs3N1eHDhy9Z6bXQbldGevbsqc6dO19yB3BlZaUSExPr7XP99ddry5Ytqq6u1rFjx/Thhx/q2muvVf/+/YNt5s2bF1wdGTZsmGbMmKFHHnkk+MWA9enfv7969uypI0eOtExxlxGpugcMGKBdu3bpzJkzOn78uPbv368LFy4E21wcO5zjtiSruuvTmuc7XImJifW+R3FxcYqJiWnS+5iYmKjz58/r1KlTDba52rRE3fVJS0uTpKvyXEuN193UMS72+99x2ur5bq6r+dqWwqt79uzZ2rZtm9566y317t07ZAyL67vdhpGoqCiNHj1aRUVFwX11dXUqKipSenr6ZftGR0erV69e+vbbb7Vx40ZNmTIl+LOzZ8+GfBGgJHXu3Fl1dXUNjnfixAl99dVXSkpKamY1TRepui/63ve+p6SkJJ08eVKvv/56sE1qaqoSExNDjhsIBPT3v/+90eO2BKu669Oa5ztc6enpIe+RJBUWFgbfo6a8j6NHj1aXLl1C2pSVlam8vLxVznVztETd9SktLZWkq/JcS43X3RTW13ZztETd9bmar22paXU75zR79mxt3rxZO3fuVGpqakh7s+s7YrfGXgXWrVvnvF6vW716tXv//ffdgw8+6Lp16+b8fr9zzrkZM2a4BQsWBNvv27fPbdy40X388cdu9+7d7vvf/75LTU11J0+eDLbJzs52vXr1Cj7au2nTJtezZ083f/5855xzp0+fdr/97W9dSUmJO3r0qHvzzTfdqFGj3A033OC++eabNlv3jh073GuvveY++eQT98Ybb7jhw4e7tLQ0d/78+WCbJUuWuG7durmtW7e6f/7zn27KlCmt/mhva9dtfb5Pnz7tDh065A4dOuQkuWXLlrlDhw65Y8eOOeecW7BggZsxY0aw/cVH/+bNm+c++OADt2LFinofcb3c++jcd4/+9enTx+3cudMdOHDApaenu/T09IjXa1n3kSNH3KJFi9yBAwfc0aNH3datW13//v3d+PHj23TdjY3pnP21bVG39bUdqboffvhh5/P5XHFxccgjy2fPng22sbi+23UYcc65p556yvXp08dFRUW5MWPGuH379gV/NmHCBJednR18XVxc7AYPHuy8Xq/r0aOHmzFjhvvss89CxgsEAm7OnDmuT58+Ljo62vXv3989+uijrqamxjn33eOgd955p7v++utdly5dXN++fV1OTk7IP+StoaXrXr9+vevfv7+LiopyiYmJLjc31506dSqkTV1dnXvsscdcQkKC83q97o477nBlZWURrfN/tXbd1uf7rbfecpIu2S7WmZ2d7SZMmHBJnxEjRrioqCjXv39/98ILL1wy7uXeR+ecO3funPv1r3/trrvuOte1a1f3k5/8xFVUVESoyktZ1F1eXu7Gjx/vunfv7rxerxs4cKCbN29eq37OSCTqbmxM5+yvbYu6ra/tpsyxOXXXN56kkHYW17fn/08OAADARLu9ZwQAALQNhBEAAGCKMAIAAEwRRgAAgCnCCAAAMEUYAQAApggjAADAFGEEAACYIowAAABThBEAAGCKMAIAAEwRRgAAgKn/B8TIXv7/y15cAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "orig unit avg and sd usage are 0.99716 0.08765\n"
     ]
    },
    {
     "data": {
      "image/png": "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9tlnKz09XTt37tSvfvUrtW/fXnFxcRo7dqx++ukn6z3r1q3TwIEDFR0drU6dOummm27S119/7bXezZs367LLLlNYWJj69++v7du3n7KXxYsXKzo62no9c+ZM9e3bV3//+991/vnnKyoqSiNHjtShQ4f8tv8n4/MZoa1bt+raa6+1XteHk3Hjxmnx4sWNWserr76qzMxMXX/99dYNFZ999llreVRUlN59911lZGSoX79+OvvsszV9+nTrHkKSdMUVV2jp0qV6+OGH9cc//lHdunXTG2+8Yd1DSJIeeOABVVZWatKkSSorK9PAgQO1bt067iEEoM1q7FiVljq+BE1ryZIluvvuu/Xxxx+rrKxM1113ne644w4988wzqqqq0pQpUzR8+HCtX79e0r/vHZidna1LL71UFRUVmj59un7zm9+ooKBAwcHBqqio0E033aQbbrhB//jHP7R3715Nnjz5tHr7+uuv9cYbb2j16tUqLS3V8OHD9eSTT+rxxx/35yE4js9B6JprrpExptH1+/btO25ex44drZsnnsyll16qf/3rXw3W3Hrrrbr11ltPujwoKEiPPvqoHn300Ub1CgCtXWPGqrT28SU4fd26ddPs2bMlSY899pguu+wyPfHEE9byV155RUlJSfryyy910UUXadiwYV7vf+WVV3TOOedo9+7d6tWrl5YuXSqPx6OXX35ZYWFhuuSSS/Tdd9+d1hAUj8ejxYsXq0OHDpL+PdwmNze35QUhAEDL15rGqqD51I/NlaRPP/1U77///gmf1fX111/roosu0ldffaXp06dr06ZN+umnn+TxeCRJ+/fvV69evfT555/r0ksv9fqmpX6sbr1LLrlE3377rSTpqquu0ttvv33C3s4//3wrBElS586dj7u4qikQhAAAsImIiAjrzxUVFbr55pv11FNPHVdXf7X1zTffrC5duuill15SQkKCPB6PevXqpZqaxt8vae3ataqtrZWkBgdI118cVS8oKMgKXk2JIAQAgA1dfvnl+uc//6nzzz9f7dodHwd+/vlnFRYW6qWXXtJVV10lSfroo4+8anr27Km///3vOnz4sHVW6JNPPvGq6dKlSxPtgX8QhAAA8JM9JRWtZjsZGRl66aWXNGrUKD3wwAPq2LGj9uzZo+XLl+uvf/2rYmJi1KlTJ7344ovq3Lmz9u/frwcffNBrHaNHj9ZDDz2kiRMnaurUqdq3b5/+/Oc/n3FvzYkgBADNoDGPX+CRCa1XTIRD4aEhylpR0GzbDA8NUUzE6d8HKCEhQR9//LGmTJmiwYMHq7q6Wl26dNGNN96o4OBgBQUFafny5frDH/6gXr16qXv37nr22Wd1zTXXWOto37693nrrLd1111267LLLdPHFF+upp546bpB1SxZkfLkEzGbcbreioqJUXl6uyMjIQLcDoJVqzkvadxaV66bnPtLqewaedLB0Y2pwYocPH9bevXuVnJx83K1YeNZY82roZ+HL5zdnhACgiXFJuz0kRofzs2uFCEIA0Ey4pB1oeXx+xAYAAEBbQRACAAC2RRACAMBHXGcUeP76GRCEAABopPq7H//yyy8B7gT1d7cOCQk5o/UwWBoAgEYKCQlRdHS09Qyss846S0FBQQHuyn48Ho9+/PFHnXXWWSe8K7YvCEIAAPggPj5ekprlgaA4ueDgYJ133nlnHEQJQgAA+CAoKEidO3dWbGys9TBRND+Hw6Hg4DMf4UMQAgDgNISEhJzx+BQEHoOlAQCAbXFGCABakFM9Vdzuz5cC/I0gBAAtQGOfXu6PB7MC+D8EIQBoARKjw/XefYMafHo5D2YF/I8gBAAtBE8vB5ofg6UBAIBtEYQAAIBtEYQAAIBtEYQAAIBtEYQAAIBtEYQAAIBtEYQAAIBtEYQAAIBtEYQAAIBtEYQAAIBtEYQAAIBtEYQAAIBtEYQAAIBtEYQAAIBtEYQAAIBtEYQAAIBtEYQAAIBtEYQAAIBtEYQAAIBt+RyENmzYoJtvvlkJCQkKCgrSG2+8YS2rra3VlClT1Lt3b0VERCghIUG33Xabvv/+e691HDx4UGPGjFFkZKSio6M1YcIEVVRUeNV89tlnuuqqqxQWFqakpCTNnj37uF5WrlypHj16KCwsTL1799batWu9lhtjNH36dHXu3Fnh4eFKS0vTV1995esuAwCANsrnIFRZWak+ffpowYIFxy375ZdftG3bNk2bNk3btm3T66+/rsLCQv3Xf/2XV92YMWO0a9cu5eTkaPXq1dqwYYMmTZpkLXe73Ro8eLC6dOmi/Px8zZkzRzNnztSLL75o1WzcuFGjRo3ShAkTtH37dg0dOlRDhw7Vzp07rZrZs2fr2Wef1aJFi7Rp0yZFREQoPT1dhw8f9nW3AQBAW2TOgCSzatWqBms2b95sJJlvv/3WGGPM7t27jSSzZcsWq+btt982QUFBpqioyBhjzMKFC01MTIyprq62aqZMmWK6d+9uvR4+fLgZMmSI17ZSUlLMnXfeaYwxxuPxmPj4eDNnzhxreVlZmXE6nWbZsmWN2r/y8nIjyZSXlzeqHgBOZMd3ZabLlNVmx3dlTb4ef9UArZkvn99NPkaovLxcQUFBio6OliTl5eUpOjpa/fv3t2rS0tIUHBysTZs2WTVXX321HA6HVZOenq7CwkKVlpZaNWlpaV7bSk9PV15eniRp7969crlcXjVRUVFKSUmxao5VXV0tt9vtNQEAgLarSYPQ4cOHNWXKFI0aNUqRkZGSJJfLpdjYWK+6du3aqWPHjnK5XFZNXFycV03961PVHL386PedqOZYs2bNUlRUlDUlJSX5vM8AAKD1aLIgVFtbq+HDh8sYoxdeeKGpNuNXU6dOVXl5uTUdOHAg0C0BAIAm1K4pVlofgr799lutX7/eOhskSfHx8SopKfGqP3LkiA4ePKj4+Hirpri42Kum/vWpao5eXj+vc+fOXjV9+/Y9Yd9Op1NOp9PX3QUAAK2U388I1Yegr776Su+99546derktTw1NVVlZWXKz8+35q1fv14ej0cpKSlWzYYNG1RbW2vV5OTkqHv37oqJibFqcnNzvdadk5Oj1NRUSVJycrLi4+O9atxutzZt2mTVAAAAe/M5CFVUVKigoEAFBQWS/j0ouaCgQPv371dtba1++9vfauvWrXr11VdVV1cnl8sll8ulmpoaSVLPnj114403auLEidq8ebM+/vhjZWZmauTIkUpISJAkjR49Wg6HQxMmTNCuXbu0YsUKzZ8/X9nZ2VYfkydP1rp16zR37lx98cUXmjlzprZu3arMzExJUlBQkLKysvTYY4/pzTff1I4dO3TbbbcpISFBQ4cOPcPDBgAA2gKfvxrbunWrrr32Wut1fTgZN26cZs6cqTfffFOSjvv66f3339c111wjSXr11VeVmZmp66+/XsHBwRo2bJieffZZqzYqKkrvvvuuMjIy1K9fP5199tmaPn26172GrrjiCi1dulQPP/yw/vjHP6pbt25644031KtXL6vmgQceUGVlpSZNmqSysjINHDhQ69atU1hYmK+7DQAtxp6SitNaBuB4QcYYE+gmWiq3262oqCiVl5d7jXMCAF/sLCrX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R57qX/TZNz+o4pD/e/DVNz9WylP9iyoOueV2n7jnxugQLK2aeJnKfmn4a8HosxzqEFwrt7v2tLfVGPU/i4aOs7/2HQDwf+r//fX3v631n9vGmFMXmzasqKjISDIbN270mn///febAQMGHFc/Y8YMI4mJiYmJiYmpDUwHDhw4ZVZo02eEfDV16lRlZ2dbrz0ejw4ePKhOnTopKMj3pOp2u5WUlKQDBw4oMjLSn622ehybk+PYnBzHpmEcn5Pj2JxcWzw2xhgdOnRICQkJp6xt00Ho7LPPVkhIiIqLi73mFxcXKz4+/rh6p9Mpp9PpNS86OvqM+4iMjGwzv1z+xrE5OY7NyXFsGsbxOTmOzcm1tWMTFRXVqLrgJu4joBwOh/r166fc3FxrnsfjUW5urlJTUwPYGQAAaAna9BkhScrOzta4cePUv39/DRgwQPPmzVNlZaV1FRkAALCvNh+ERowYoR9//FHTp0+Xy+VS3759tW7dOsXFxTX5tp1Op2bMmHHc123g2DSEY3NyHJuGcXxOjmNzcnY/NkHGNObaMgAAgLanTY8RAgAAaAhBCAAA2BZBCAAA2BZBCAAA2BZB6AwtWLBA559/vsLCwpSSkqLNmzc3WF9WVqaMjAx17txZTqdTF110kdauXdtM3TYvX47NNddco6CgoOOmIUOGNGPHzcfX35t58+ape/fuCg8PV1JSku69914dPny4mbptXr4cm9raWj366KO68MILFRYWpj59+mjdunXN2G3z2bBhg26++WYlJCQoKChIb7zxxinf88EHH+jyyy+X0+lU165dtXjx4ibvMxB8PTY//PCDRo8erYsuukjBwcHKyspqlj4Dwddj8/rrr+uGG27QOeeco8jISKWmpuqdd95pnmYDhCB0BlasWKHs7GzNmDFD27ZtU58+fZSenq6SkpIT1tfU1OiGG27Qvn379D//8z8qLCzUSy+9pMTExGbuvOn5emxef/11/fDDD9a0c+dOhYSE6NZbb23mzpuer8dm6dKlevDBBzVjxgx9/vnnevnll7VixQr98Y9/bObOm56vx+bhhx/WX/7yFz333HPavXu37rrrLv3mN7/R9u3bm7nzpldZWak+ffpowYIFjarfu3evhgwZomuvvVYFBQXKysrSHXfc0SY/1Hw9NtXV1TrnnHP08MMPq0+fPk3cXWD5emw2bNigG264QWvXrlV+fr6uvfZa3XzzzW3y75TFP483tacBAwaYjIwM63VdXZ1JSEgws2bNOmH9Cy+8YC644AJTU1PTXC0GjK/H5ljPPPOM6dChg6moqGiqFgPG12OTkZFhrrvuOq952dnZ5sorr2zSPgPB12PTuXNn8/zzz3vNu+WWW8yYMWOatM9Ak2RWrVrVYM0DDzxgLrnkEq95I0aMMOnp6U3YWeA15tgcbdCgQWby5MlN1k9L4uuxqXfxxRebRx55xP8NtRCcETpNNTU1ys/PV1pamjUvODhYaWlpysvLO+F73nzzTaWmpiojI0NxcXHq1auXnnjiCdXV1TVX283idI7NsV5++WWNHDlSERERTdVmQJzOsbniiiuUn59vfUX0zTffaO3atfr1r3/dLD03l9M5NtXV1QoLC/OaFx4ero8++qhJe20N8vLyvI6lJKWnpzf67yAg/fuxVIcOHVLHjh0D3UqTafN3lm4qP/30k+rq6o67Q3VcXJy++OKLE77nm2++0fr16zVmzBitXbtWe/bs0e9//3vV1tZqxowZzdF2szidY3O0zZs3a+fOnXr55ZebqsWAOZ1jM3r0aP30008aOHCgjDE6cuSI7rrrrjb31djpHJv09HQ9/fTTuvrqq3XhhRcqNzdXr7/+epv7z8XpcLlcJzyWbrdbVVVVCg8PD1BnaE3+/Oc/q6KiQsOHDw90K02GM0LNyOPxKDY2Vi+++KL69eunESNG6KGHHtKiRYsC3VqL8vLLL6t3794aMGBAoFtpET744AM98cQTWrhwobZt26bXX39da9as0Z/+9KdAtxZw8+fPV7du3dSjRw85HA5lZmZq/PjxCg7mnzbgTC1dulSPPPKIXnvtNcXGxga6nSbDGaHTdPbZZyskJETFxcVe84uLixUfH3/C93Tu3FmhoaEKCQmx5vXs2VMul0s1NTVyOBxN2nNzOZ1jU6+yslLLly/Xo48+2pQtBszpHJtp06Zp7NixuuOOOyRJvXv3VmVlpSZNmqSHHnqozXzon86xOeecc/TGG2/o8OHD+vnnn5WQkKAHH3xQF1xwQXO03KLFx8ef8FhGRkZyNgintHz5ct1xxx1auXLlcV+xtjVt41/QAHA4HOrXr59yc3OteR6PR7m5uUpNTT3he6688krt2bNHHo/Hmvfll1+qc+fObSYESad3bOqtXLlS1dXV+t3vftfUbQbE6RybX3755biwUx+mTRt6VOCZ/N6EhYUpMTFRR44c0T//+U/993//d1O32+KlpqZ6HUtJysnJOeWxBJYtW6bx48dr2bJlbfYWJl4CPVq7NVu+fLlxOp1m8eLFZvfu3WbSpEkmOjrauFwuY4wxY8eONQ8++KBVv3//ftOhQweTmZlpCgsLzerVq01sbKx57LHHArULTcbXY1Nv4MCBZsSIEc3dbrPy9djMmDHDdOjQwSxbtsx888035t133zUXXnihGT58eKB2ocn4emw++eQT889//tN8/fXXZsOGDea6664zycnJprS0NEB70HQOHTpktm/fbrZv324kmaefftps377dfPvtt8YYYx588EEzduxYq/6bb74xZ511lrn//vvN559/bhYsWGBCQkLMunXrArULTcbXY2OMser79etnRo8ebbZv32527doViPablK/H5tVXXzXt2rUzCxYsMD/88IM1lZWVBWoXmhxB6Aw999xz5rzzzjMOh8MMGDDAfPLJJ9ayQYMGmXHjxnnVb9y40aSkpBin02kuuOAC8/jjj5sjR440c9fNw9dj88UXXxhJ5t13323mTpufL8emtrbWzJw501x44YUmLCzMJCUlmd///vdt8sPeGN+OzQcffGB69uxpnE6n6dSpkxk7dqwpKioKQNdN7/333zeSjpvqj8e4cePMoEGDjntP3759jcPhMBdccIH529/+1ux9N4fTOTYnqu/SpUuz997UfD02gwYNarC+LQoypg2dWwcAAPABY4QAAIBtEYQAAIBtEYQAAIBtEYQAAIBtEYQAAIBtEYQAAIBtEYQAAIBtEYQAAIBtEYQAAIBtEYQAAIBtEYQAAIBtEYQAAIBt/X/pkeIqQQEHygAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "HDvPop = [np.sum([unitPop[u] for u in HDunitList[t]]) for t in range(nHDs) ]\n",
    "print(\"Here is the histogram of HD pops relative to 'county-specific) aDP\")\n",
    "plt.hist([HDvPop[t] / countyADP[countyNo[t]] for t in popHDlist ], bins=20, weights = [HDweight[t] for t in popHDlist], label= \"HDpop / target\" )\n",
    "plt.show()\n",
    "unitUse = [0. for u in range(nUnits)]\n",
    "for t in range(nHDs):\n",
    "    for u in HDunitList[t]:\n",
    "        unitUse[u] += HDweight[t] # * nDistricts\n",
    "plt.hist(unitUse, bins=50, weights=unitPop,label=\"read-in\",histtype=\"step\")\n",
    "plt.legend()\n",
    "unpatchedAvg, unpatchedSD = getWeightedAvgAndSD(unitUse,unitPop)\n",
    "print(\"orig unit avg and sd usage are\",r5(unpatchedAvg), r5(unpatchedSD) )\n",
    "plt.show()\n",
    "currAvg, currSD = unpatchedAvg, unpatchedSD"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "53e4c298-e6cb-4fee-a511-b8f6c3940539",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "id": "c4183011-724a-4014-8c94-f9f9382c7e75",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Did I grossly overuse any units, or skip any live ones?\n",
      "no grossly underused\n",
      "above: underused < 0.5; below overused > 1.6\n",
      "no grossly overused\n"
     ]
    }
   ],
   "source": [
    "print(\"Did I grossly overuse any units, or skip any live ones?\")\n",
    "nUnder = 0\n",
    "for u in range(nUnits):\n",
    "    if unitUse[u] < 0.5 and unitPop[u] > 5:\n",
    "        nUnder +=1\n",
    "        plotPoly(unitGeom[u])\n",
    "        #print(u,unitPop[u], unitUse[u])\n",
    "        #for c in range(nCounties):\n",
    "        #    if u in countyUnitList[c]:\n",
    "        #        print(u,\"is in county\",c)\n",
    "        #        print(\"its neighbor units are\",unitNbrs[u])\n",
    "if nUnder == 0:\n",
    "    print(\"no grossly underused\")\n",
    "else:\n",
    "    plotPoly(MAP,0.2)\n",
    "    plt.show()\n",
    "print(\"above: underused < 0.5; below overused > 1.6\")\n",
    "nOver = 0\n",
    "for u in range(nUnits):\n",
    "    if unitUse[u] > 1.6:\n",
    "        nOver +=1\n",
    "        plotPoly(unitGeom[u],0.3)\n",
    "if nOver == 0:\n",
    "    print(\"no grossly overused\")\n",
    "else:\n",
    "    plotPoly(MAP)\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "id": "ce9292b0-7d6a-419a-9491-d0def779ad04",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "there are a total of 1446 populated HDs out of 8941\n"
     ]
    }
   ],
   "source": [
    "popHDlist = list()\n",
    "for t in range(nHDs):\n",
    "    if len(HDunitList[t]) > 0:\n",
    "        popHDlist.append(t)\n",
    "populatedTractList = popHDlist.copy()\n",
    "print(\"there are a total of\",len(populatedTractList),\"populated HDs out of\",nHDs)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "id": "f7f36559-7f1d-4203-8b24-0e8cc2ce1753",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "this will show if we had any duplicated units in HDunitLists\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGdCAYAAAAMm0nCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAgEElEQVR4nO3de1DVdf7H8ReIXDIPeFlACo2tVmWzi5pIrbYVIxY2udHuamRukVYLtUplOhWWXTCzUsvVzdrFmXTUdtbWZNNYr5siGuaG1266WnagfuQ5aokC398fO37Xk9dDcnnT8zFzZuL7/XwP7+83hed8ORxDHMdxBAAAYEhoUw8AAAAQLAIGAACYQ8AAAABzCBgAAGAOAQMAAMwhYAAAgDkEDAAAMIeAAQAA5oQ19QANpa6uTnv37lXbtm0VEhLS1OMAAIAz4DiO9u/fr4SEBIWGnvw+S4sNmL179yoxMbGpxwAAAPWwZ88enX/++Sfd32IDpm3btpL+ewE8Hk8TTwMAAM6E3+9XYmKi+338ZFpswBz9sZHH4yFgAAAw5nQv/+BFvAAAwBwCBgAAmEPAAAAAcwgYAABgDgEDAADMIWAAAIA5BAwAADCHgAEAAOYQMAAAwBwCBgAAmEPAAAAAcwgYAABgDgEDAADMIWAAAIA5YU09AADUxwVji5p6hKDtmpjR1CMALQZ3YAAAgDkEDAAAMIeAAQAA5hAwAADAHAIGAACYQ8AAAABzCBgAAGAOAQMAAMwhYAAAgDkEDAAAMIeAAQAA5hAwAADAHAIGAACYQ8AAAABzCBgAAGAOAQMAAMwhYAAAgDkEDAAAMIeAAQAA5hAwAADAHAIGAACYQ8AAAABzCBgAAGAOAQMAAMwhYAAAgDkEDAAAMIeAAQAA5hAwAADAHAIGAACYQ8AAAABzCBgAAGAOAQMAAMwJKmBqa2v1+OOPKykpSVFRUbrwwgv11FNPyXEcd43jOMrPz1enTp0UFRWltLQ0ffzxxwHPU1VVpaysLHk8HsXExCg7O1sHDhwIWPPhhx+qX79+ioyMVGJioiZNmvQDThMAALQkQQXMc889pxkzZuiVV17Rtm3b9Nxzz2nSpEl6+eWX3TWTJk3StGnTNHPmTJWWlqpNmzZKT0/XoUOH3DVZWVnasmWLiouLtXjxYq1evVojR4509/v9fg0YMEBdunRRWVmZnn/+eT3xxBN69dVXz8IpAwAA60KcY2+fnMagQYMUFxen119/3d2WmZmpqKgovfHGG3IcRwkJCXrwwQf10EMPSZJ8Pp/i4uJUWFioIUOGaNu2bUpOTtaGDRvUu3dvSdKSJUt044036vPPP1dCQoJmzJihRx99VF6vV+Hh4ZKksWPH6q233tL27dvPaFa/36/o6Gj5fD55PJ4zviAAbLhgbFFTjxC0XRMzmnoEoNk70+/fQd2Bueqqq7Rs2TJ99NFHkqR///vfeu+993TDDTdIknbu3Cmv16u0tDT3mOjoaKWkpKikpESSVFJSopiYGDdeJCktLU2hoaEqLS111/Tv39+NF0lKT0/Xjh079M0335xwturqavn9/oAHAABomcKCWTx27Fj5/X5169ZNrVq1Um1trZ555hllZWVJkrxeryQpLi4u4Li4uDh3n9frVWxsbOAQYWFq3759wJqkpKTjnuPovnbt2h03W0FBgZ588slgTgcAABgV1B2YBQsWaM6cOZo7d642btyo2bNna/LkyZo9e3ZDzXfGxo0bJ5/P5z727NnT1CMBAIAGEtQdmIcfflhjx47VkCFDJEk9evTQf/7zHxUUFGj48OGKj4+XJFVUVKhTp07ucRUVFbr88sslSfHx8aqsrAx43pqaGlVVVbnHx8fHq6KiImDN0Y+Prvm+iIgIRUREBHM6AADAqKDuwHz77bcKDQ08pFWrVqqrq5MkJSUlKT4+XsuWLXP3+/1+lZaWKjU1VZKUmpqqffv2qayszF2zfPly1dXVKSUlxV2zevVqHTlyxF1TXFysrl27nvDHRwAA4MclqIC56aab9Mwzz6ioqEi7du3SwoUL9eKLL+pXv/qVJCkkJESjRo3S008/rUWLFqm8vFx33HGHEhISNHjwYElS9+7dNXDgQI0YMULr16/XmjVrlJubqyFDhighIUGSdNtttyk8PFzZ2dnasmWL5s+fr6lTpyovL+/snj0AADApqB8hvfzyy3r88cf1+9//XpWVlUpISNA999yj/Px8d82YMWN08OBBjRw5Uvv27dMvfvELLVmyRJGRke6aOXPmKDc3V9dff71CQ0OVmZmpadOmufujo6P17rvvKicnR7169VLHjh2Vn58f8F4xAADgxyuo94GxhPeBAVo23gcGaJka5H1gAAAAmgMCBgAAmEPAAAAAcwgYAABgDgEDAADM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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(\"this will show if we had any duplicated units in HDunitLists\")\n",
    "excess = [0 for t in range(nHDs)]\n",
    "for t in popHDlist:\n",
    "    excess[t] = len(HDunitList[t]) - len(set(HDunitList[t]))\n",
    "plt.hist(excess)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "84bec0a9-3e36-48b5-be8b-589c9a467d44",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "id": "27bc7f0a-d7ff-4c68-830f-29ba5013c314",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "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lZaWpgkTJmjHjh3d1RW96nz7XZICgYBmzJihvLw8ZWRkaOzYsfrNb34T1ebYsWOaPn26vF6vsrKyNGvWLH3yySdRbd555x195StfUVpamvLz87Vs2bJOz7VmzRoNHz5caWlpGjlypNavX3/efRAr3dH3H3zwgb75zW9q4MCB8nq9mjp1aqeLLtL3nZ2p79va2jR37lyNHDlSGRkZGjRokO68804dOXIkah291a/GGC1YsEAXXXSR+vXrp8LCQu3fv7/7OqOXdUff//jHP9bVV1+t9PT0z7xQKO/13atPB5QTJ05o9OjRqqio+Mzl1157rf7jP/7jtMvz8/N19OjRqNuiRYuUmZmpSZMmSZLC4bBKSkoUCoW0fft2Pf/881q5cqUWLFjgrOfAgQMqKSnR9ddfr7q6Ot1///363ve+p02bNjltXnzxRZWVlWnhwoXatWuXRo8ereLiYjU2NnZjj/SO8+13Sbrzzju1b98+/e53v1N9fb0mT56sqVOnqra21mkzffp07dmzR5WVlVq7dq22bdumu+++21keDAZVVFSkiy++WDU1NXr44Yf1b//2b/rZz37mtNm+fbumTZumWbNmqba2Vrfddptuu+027d69uxt6ovedb9+fOHFCRUVFcrlc2rJli958802FQiHdfPPNikQiTjv6vrMz9f3Jkye1a9cuzZ8/X7t27dJvf/tb7du3T7fccktUu97q12XLlumJJ57Q8uXLVV1drYyMDBUXF6ulpaUHeqbndUffh0Ihfetb39Ls2bNP+xy81/cAA2OMMZLMyy+/fNplBw4cMJJMbW3t565nzJgx5rvf/a5zf/369cbtdptAIODMe/rpp43X6zWtra3GGGMefPBBc8UVV0St54477jDFxcXO/auuusqUlpY698PhsBk0aJBZsmTJ2Wyetc613zMyMswvfvGLqHnZ2dnm2WefNcYYs3fvXiPJ7Ny501m+YcMG43K5zF//+ldjjDFPPfWUueCCC5y/gzHGzJ0711x++eXO/alTp5qSkpKo55kwYYK55557urSdNjqXvt+0aZNxu92mubnZmdfU1GRcLpeprKw0xtD3Z+NMfd9hx44dRpL58MMPjTG916+RSMTk5eWZhx9+2Fne1NRkPB6P+dWvfnVuG2yRc+n7v7dixQrj8/k6zee9vvv16RGU7lZTU6O6ujrNmjXLmVdVVaWRI0dGXYCuuLhYwWBQe/bscdoUFhZGrau4uFhVVVWSPk3uNTU1UW3cbrcKCwudNn3N1VdfrRdffFHHjh1TJBLR6tWr1dLSoq9+9auSPu3TrKwsjR8/3nlMYWGh3G63qqurnTbXXXedUlNTnTbFxcXat2+f/vd//9dpc6a/TV/T2toql8sVdUGqtLQ0ud1uvfHGG5Lo++7S3Nwsl8vl7E7orX49cOCAAoFAVBufz6cJEyb02b4/G7zXdz8CSjd67rnnNGLECF199dXOvEAg0OnquB33A4HAGdsEg0GdOnVKH3/8scLh8GnbdKyjr3nppZfU1tamAQMGyOPx6J577tHLL7+sSy+9VNKnfZqTkxP1mOTkZGVnZ39uv3csO1ObvtrvEydOVEZGhubOnauTJ0/qxIkT+uEPf6hwOKyjR49Kou+7Q0tLi+bOnatp06Y5Pz7XW/3a8S99P61LP/zHe333I6B0k1OnTmnVqlVRoyfoOfPnz1dTU5P+8Ic/6O2331ZZWZmmTp2q+vr6WJeW0AYOHKg1a9botddeU2Zmpnw+n5qamjR27Fi53byddIe2tjZNnTpVxhg9/fTTsS6nT6Hv7RKz3+JJNL/+9a918uRJ3XnnnVHz8/LyOh2B3XHGQ15envPvP54F0dDQIK/Xq379+ikpKUlJSUmnbdOxjr7kgw8+0JNPPqndu3friiuukCSNHj1af/rTn1RRUaHly5crLy+v00Fl7e3tOnbs2Of2e8eyM7Xpi/3eoaioSB988IE+/vhjJScnKysrS3l5ebrkkkskib4/Dx0fkB9++KG2bNkS9Q2+t/q149+GhgZddNFFUW3GjBnTDVtppzP1/dngvb778ZWnmzz33HO65ZZbNHDgwKj5fr9f9fX1UW8slZWV8nq9KigocNps3rw56nGVlZXy+/2SpNTUVI0bNy6qTSQS0ebNm502fcnJkyclqdM39qSkJOdMEr/fr6amJtXU1DjLt2zZokgkogkTJjhttm3bpra2NqdNZWWlLr/8cl1wwQVOmzP9bfqyCy+8UFlZWdqyZYsaGxudsx7o+3PT8QG5f/9+/eEPf9CAAQOilvdWvw4bNkx5eXlRbYLBoKqrq/ts358N3ut7QKyP0o2l48ePm9raWlNbW2skmUcffdTU1tY6R27/7W9/M7W1tWbdunVGklm9erWpra01R48ejVrP/v37jcvlMhs2bOj0HO3t7ebKK680RUVFpq6uzmzcuNEMHDjQlJeXO23+8pe/mPT0dDNnzhzz7rvvmoqKCpOUlGQ2btzotFm9erXxeDxm5cqVZu/evebuu+82WVlZUUeMx4vz7fdQKGQuvfRS85WvfMVUV1eb999/3zzyyCPG5XKZdevWOc9z0003mS996UumurravPHGG+ayyy4z06ZNc5Y3NTWZ3NxcM2PGDLN7926zevVqk56ebp555hmnzZtvvmmSk5PNI488Yt59912zcOFCk5KSYurr63upt7pXd/yf//nPf26qqqrM+++/b375y1+a7OxsU1ZWFvU89H1nZ+r7UChkbrnlFjN48GBTV1dnjh496tz+/oyc3urXpUuXmqysLPPqq6+ad955x9x6661m2LBh5tSpU73TWd2sO/r+ww8/NLW1tWbRokUmMzPTWd/x48eNMbzX94Q+HVBef/11I6nTbebMmcaYT08nO93yhQsXRq2nvLzc5Ofnm3A4fNrnOXjwoJk0aZLp16+fufDCC80PfvAD09bW1qmWMWPGmNTUVHPJJZeYFStWdFrPT3/6UzNkyBCTmppqrrrqKvPWW291Rzf0uu7o9//+7/82kydPNjk5OSY9Pd2MGjWq02nHf/vb38y0adNMZmam8Xq95q677nLeTDr8+c9/Ntdee63xeDzmC1/4glm6dGmnel966SXzxS9+0aSmpporrrgiKgTFm+7o+7lz55rc3FyTkpJiLrvsMvOf//mfJhKJRD0Pfd/Zmfq+47Tu091ef/11Zx291a+RSMTMnz/f5ObmGo/HY2688Uazb9++HumX3tAdfT9z5szPbcN7ffdyGWPMeQ/DAAAAdCOOQQEAANYhoAAAAOsQUAAAgHUIKAAAwDoEFAAAYB0CCgAAsA4BBQAAWIeAAgAArENAAQAA1iGgAAAA6xBQAACAdQgoAADAOv8PCdnXknlPvIoAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#popHDlist = populatedTractList.copy()  #somehow our popHDlist started to include the cut District HD starters\n",
    "HDunitList = [list(set(HDunitList[t])) for t in range(nHDs)]\n",
    "HDvPop = [np.sum([unitPop[u] for u in HDunitList[t]]) for t in range(nHDs)]\n",
    "plt.hist([HDvPop[t] for t in popHDlist])\n",
    "for c in cList:\n",
    "    plt.axvline(countyADP[c],ls=\"--\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "id": "af8a4945-40c2-40df-8dd4-d516f4de2f0f",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "quick classification: who has contiguity problems?\n",
      "working on HD 1190 time is now 0\n",
      "working on HD 6887 time is now 10\n",
      "working on HD 7587 time is now 30\n",
      "out of 1446 total HDs, there were 636.0 contiguous and 146.0 complement-contiguous HDs\n",
      "733 HDs had both discontiguity problems, while enclave-only = 567 and discontig only= 77\n",
      "here are the histograms of the small piece and enclave list lengths, total no = 810 567\n"
     ]
    },
    {
     "data": {
      "image/png": "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kiVau3atFixYoMOHD+vmm2/W8ePH5XA45O3traCgIJd1wsLC5HA4JEkOh8MlnFQur1x2NmlpaQoMDHROLVu2dKdsAABQz7h1iqdv377Orzt27KiYmBhFRkbqrbfekp+fX40XVyk1NVUpKSnO10VFRYQUAAAasIu6zTgoKEhXX321Dh48KJvNppKSEhUUFLi0ycvLc16zYrPZzrirp/J1Vde1VPLx8ZHVanWZAABAw3VRAeXEiRM6dOiQwsPD1a1bN3l5eSkjI8O5PDs7Wzk5ObLb7ZIku92uvXv3Kj8/39lm3bp1slqtio6OvphSAABAA+LWKZ4xY8bo7rvvVmRkpI4ePapJkybJ09NTgwYNUmBgoIYMGaKUlBQFBwfLarVq5MiRstvt6tGjhySpd+/eio6O1oMPPqhZs2bJ4XBo/PjxSk5Olo+PT610EAAA1D9uBZRvv/1WgwYN0o8//qhmzZrppptu0rZt29SsWTNJ0osvvigPDw8lJCSouLhYcXFxmj9/vnN9T09PrV69WsOHD5fdblfjxo2VlJSkqVOn1myvAABAveZWQHnjjTfOudzX11fp6elKT08/a5vIyEitWbPGnd0CAIDLDJ/FAwAATIeAAgAATIeAAgAATIeAAgAATIeAAgAATIeAAgAATIeAAgAATIeAAgAATIeAAgAATIeAAgAATIeAAgAATIeAAgAATIeAAgAATIeAAgAATIeAAgAATIeAAgAATIeAAgAATIeAAgAATIeAAgAATIeAAgAATIeAAgAATIeAAgAATIeAAgAATIeAAgAATIeAAgAATIeAAgAATIeAAgAATIeAAgAATIeAAgAATIeAAgAATIeAAgAATIeAAgAATOeiAsrMmTNlsVg0atQo57zTp08rOTlZISEhCggIUEJCgvLy8lzWy8nJUXx8vPz9/RUaGqqxY8eqrKzsYkoBAAANSLUDys6dO/XSSy+pY8eOLvNHjx6t9957TytWrNCmTZt09OhR9e/f37m8vLxc8fHxKikp0datW7V06VItWbJEEydOrH4vAABAg1KtgHLixAklJibqlVde0RVXXOGcX1hYqEWLFmn27Nm6/fbb1a1bNy1evFhbt27Vtm3bJEkfffSR9u/fr9dff12dO3dW3759NW3aNKWnp6ukpKRmegUAAOq1agWU5ORkxcfHKzY21mV+VlaWSktLXea3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Huf0xRdfaNu2bZL++4j3c21jypQpLuvv3btXBw4ccN596C4PDw+X02dS1U9vPdf390JNnjxZ+/btU3x8vDZs2KDo6GitXLnS/aIBE3F7BOXEiRM6ePCg8/Xhw4e1Z88eBQcHq1WrVho1apSeeeYZtW3b1nmbcUREhPOWuPbt26tPnz4aOnSoFi5cqNLSUo0YMUIDBw7kDh6gllksFvXs2VM9e/bUxIkTFRkZqZUrV7qcQnXH1q1bFRkZqb/+9a/Oed98881F11lWVqZdu3Y5R0uys7NVUFCg9u3bn9E2LCxMERER+s9//qPExMQqt9exY0f94x//0LFjx6ocRenatauys7NdTvtcrGbNmsnhcMgwDOfTW/fs2XPR2/Xy8lJ5+Zm3sl999dW6+uqrNXr0aA0aNEiLFy/Wvffee9H7A+qK2wFl165d+t3vfud8XfmHLSkpSUuWLNFTTz2lkydPatiwYSooKNBNN92ktWvXuvwXsmzZMo0YMUK9evWSh4eHEhISNHfu3BroDoCz2b59uzIyMtS7d2+FhoZq+/bt+v7776t8079Qbdu2VU5Ojt544w1df/31ev/992vkP3cvLy+NHDlSc+fOVaNGjTRixAj16NGjyutPpF+uIXniiScUGBioPn36qLi4WLt27dJPP/2klJQUDRo0SDNmzNA999yjtLQ0hYeHa/fu3YqIiJDdbtfEiRN11113qVWrVrrvvvvk4eGhzz//XF988YWeeeaZavXhtttu0/fff69Zs2bpvvvu09q1a/XBBx9c9Omv1q1bKyMjQz179pSPj498fX01duxY3XfffYqKitK3336rnTt3KiEh4aL2A9Q1twPKbbfddsaw5a9ZLBZNnTpVU6dOPWub4OBgHsqGButg/qV5KrK7+7Fardq8ebPmzJmjoqIiRUZG6oUXXjjrc40uxO9//3uNHj1aI0aMUHFxseLj4zVhwgRNnjy52tuUfvlAu3HjxukPf/iDvvvuO918881atGjRWds/+uij8vf313PPPaexY8eqcePG6tChg0aNGiVJ8vb21kcffaQnn3xSd955p8rKyhQdHa309HRJUlxcnFavXq2pU6fq2WeflZeXl9q1a6dHH3202n1o37695s+frxkzZmjatGlKSEjQmDFj9PLLL1d7m5L0wgsvKCUlRa+88oqaN2+ur776Sj/++KMeeugh5eXlqWnTpurfvz93PqLesxjnShsmVVRUpMDAQBUWFl70fyNnc/DzT3XVyngdvPd9XdXpplrZB+qn06dP6/Dhw4qKinIZGeRJsjVjyZIlGjVqlAoKCuq6lAbpbD+/wK/V1nugO+/f9eI2Y6A+aB7kp/VP3qqfTl66C0SvaOzdoMIJAFQioAA1qHmQH4EBAGpAjd5mDAAXa/DgwZzeAUBAAQAA5kNAAQAApkNAAQAApkNAAQAApkNAAQAApkNAAQAApsNzUICaVHBEOvXjpduff4gU1PLS7e8CtG7dWqNGjXI+Zr4ubNy4Ub/73e/0008/KSgoqNb2M3nyZK1atapGPgQQgCsCClBTCo5I6TdIpacu3T69/KXkHaYLKZeLMWPGaOTIkc7Xlc9wWbVqVd0VBTQQBBSgppz68Zdw0v8VqenVtb+/H76S3h76y34JKHUiICBAAQEBdV0G0CBxDQpQ05peLUV0rv2pGiGooqJCaWlpioqKkp+fnzp16qR//etfzuUbN26UxWJRRkaGunfvLn9/f914443Kzs522c57772n66+/Xr6+vmratKnuvffes+5z9uzZ6tChgxo3bqyWLVvq8ccf14kTv3wSc1FRkfz8/PTBBx+4rLNy5Uo1adJEp079Mhp15MgRPfDAAwoKClJwcLD69eunr7/+2u3+V/r6669lsVhcTs0UFBTIYrFo48aNF/y9mDx5sjp37uz8eunSpXrnnXdksVic2yopKdGIESMUHh4uX19fRUZGKi0trdq1A5cLAgpwGUlLS9Nrr72mhQsXat++fRo9erT++Mc/atOmTS7t/vrXv+qFF17Qrl271KhRIz3yyCPOZe+//77uvfde3Xnnndq9e7cyMjJ0ww03nHWfHh4emjt3rvbt26elS5dqw4YNeuqppyRJVqtVd911l5YvX+6yzrJly3TPPffI399fpaWliouLU5MmTfTJJ59oy5YtCggIUJ8+fVRSUvsfzHiu78WvjRkzRg888ID69Omj3Nxc5ebm6sYbb9TcuXP17rvv6q233lJ2draWLVum1q1b13rdQH3HKR7gMlFcXKwZM2Zo/fr1stvtkqQ2bdro008/1UsvvaRbb73V2Xb69OnO108//bTi4+N1+vRp+fr6avr06Ro4cKCmTJnibN+pU6ez7vfXF8u2bt1azzzzjB577DHNnz9fkpSYmKgHH3xQp06dkr+/v4qKivT+++9r5cqVkqQ333xTFRUV+sc//iGLxSJJWrx4sYKCgrRx40b17t27Zr5BZ3Gu78WvBQQEyM/PT8XFxbLZbM75OTk5atu2rW666SZZLBZFRkbWar1AQ8EICnCZOHjwoE6dOqU77rjDee1EQECAXnvtNR06dMilbceOHZ1fh4eHS5Ly8/MlSXv27FGvXr0ueL/r169Xr1691Lx5czVp0kQPPvigfvzxR+fpmzvvvFNeXl569913JUn/7//9P1mtVsXGxkqSPv/8cx08eFBNmjRx1hwcHKzTp0+fUXdtONf34kIMHjxYe/bs0TXXXKMnnnhCH330UY3XCDREjKAAl4nK6z7ef/99NW/e3GWZj4+Py2svLy/n15WjFhUVFZIkPz+/C97n119/rbvuukvDhw/X9OnTFRwcrE8//VRDhgxRSUmJ/P395e3trfvuu0/Lly/XwIEDtXz5cg0YMECNGjVy1t2tWzctW7bsjO03a9bsgmv5NQ+PX/43MwzDOa+0tLTKtuf6XlyIrl276vDhw/rggw+0fv16PfDAA4qNjXW59gfAmQgowGUiOjpaPj4+ysnJcTmd466OHTsqIyNDDz/88HnbZmVlqaKiQi+88IIzFLz11ltntEtMTNQdd9yhffv2acOGDXrmmWecy7p27ao333xToaGhslqt1a771yqDTW5urrp06SJJNfIsE29vb5WXl58x32q1asCAARowYIDuu+8+9enTR8eOHVNwcPBF7xNoqAgowGWiSZMmGjNmjEaPHq2KigrddNNNKiws1JYtW2S1WpWUlHRB25k0aZJ69eqlK6+8UgMHDlRZWZnWrFmjcePGndH2qquuUmlpqebNm6e7775bW7Zs0cKFC89od8stt8hmsykxMVFRUVGKiYlxLktMTNRzzz2nfv36aerUqWrRooW++eYbvf3223rqqafUokULt78Xfn5+6tGjh2bOnKmoqCjl5+dr/Pjxbm/nt1q3bq0PP/xQ2dnZCgkJUWBgoObNm6fw8HB16dJFHh4eWrFihWw2W60+QA5oCAgoQE374SvT7mfatGlq1qyZ0tLS9J///EdBQUHq2rWr/vKXv1zwNm677TatWLFC06ZN08yZM2W1WnXLLbdU2bZTp06aPXu2nn32WaWmpuqWW25RWlqaHnroIZd2FotFgwYN0qxZszRx4kSXZf7+/tq8ebPGjRun/v376/jx42revLl69ep1USMqr776qoYMGaJu3brpmmuu0axZsy76gtuhQ4dq48aN6t69u06cOKGPP/5YTZo00axZs3TgwAF5enrq+uuv15o1a5wjSgCqZjF+fRK2nigqKlJgYKAKCwtrbMj3tw5+/qmuWhmvg/e+r6s63VQr+0D9dPr0aR0+fFhRUVGud3LwJFnUA2f9+QV+pbbeA915/2YEBagpQS1/CQuX+WfxAEBNIKAANSmoJYEBAGoAJ0EBAIDpEFAAAIDpEFAAAIDpEFCAanLnaaKAWfBzi/qCi2QBN3l7e8vDw0NHjx5Vs2bN5O3t7XwEOmBWhmGopKRE33//vTw8POTt7V3XJQHnREAB3OTh4aGoqCjl5ubq6NGjdV0O4BZ/f3+1atWKB8XB9AgoQDV4e3urVatWKisrq/KzVwAz8vT0VKNGjRjxQ71AQAGqyWKxyMvLy+XTbgEANaNOx/jS09PVunVr+fr6KiYmRjt27KjLcgAAgEnUWUB58803lZKSokmTJumzzz5Tp06dFBcXp/z8/LoqCQAAmESdBZTZs2dr6NChevjhhxUdHa2FCxfK399fr776al2VBAAATKJOrkEpKSlRVlaWUlNTnfM8PDwUGxurzMzMM9oXFxeruLjY+bqwsFDSL5+KWBt+zM3Rt1/uVGixoeMnTtbafgAAMKPjJ06qqBbeAyu3ZRjGedvWSUD54YcfVF5errCwMJf5YWFh+t///d8z2qelpWnKlClnzG/Z8hJ8KNvMPrW/DwAAzKiW3gOPHz+uwMDAc7apF3fxpKamKiUlxfm6oqJCx44dU0hISI3fLldUVKSWLVvqyJEjslqtNbptM6B/9V9D7yP9q/8aeh8bev+k2uujYRg6fvy4IiIiztu2TgJK06ZN5enpqby8PJf5eXl5stlsZ7T38fGRj4+Py7ygoKDaLFFWq7XB/uBJ9K8haOh9pH/1X0PvY0Pvn1Q7fTzfyEmlOrlI1tvbW926dVNGRoZzXkVFhTIyMmS32+uiJAAAYCJ1doonJSVFSUlJ6t69u2644QbNmTNHJ0+e1MMPP1xXJQEAAJOos4AyYMAAff/995o4caIcDoc6d+6stWvXnnHh7KXm4+OjSZMmnXFKqaGgf/VfQ+8j/av/GnofG3r/JHP00WJcyL0+AAAAlxAfZwkAAEyHgAIAAEyHgAIAAEyHgAIAAEyHgPIr6enpat26tXx9fRUTE6MdO3bUdUnVkpaWpuuvv15NmjRRaGio7rnnHmVnZ7u0ue2222SxWFymxx57rI4qdt/kyZPPqL9du3bO5adPn1ZycrJCQkIUEBCghISEMx4MaGatW7c+o38Wi0XJycmS6t/x27x5s+6++25FRETIYrFo1apVLssNw9DEiRMVHh4uPz8/xcbG6sCBAy5tjh07psTERFmtVgUFBWnIkCE6ceLEJezFuZ2rj6WlpRo3bpw6dOigxo0bKyIiQg899JCOHj3qso2qjvvMmTMvcU+qdr5jOHjw4DNq79PH9THp9fkYSqryd9Jisei5555ztjHrMbyQ94UL+buZk5Oj+Ph4+fv7KzQ0VGPHjlVZWVmt1ExA+T9vvvmmUlJSNGnSJH322Wfq1KmT4uLilJ+fX9eluW3Tpk1KTk7Wtm3btG7dOpWWlqp37946efKkS7uhQ4cqNzfXOc2aNauOKq6ea6+91qX+Tz/91Lls9OjReu+997RixQpt2rRJR48eVf/+/euwWvfs3LnTpW/r1q2TJN1///3ONvXp+J08eVKdOnVSenp6lctnzZqluXPnauHChdq+fbsaN26suLg4nT592tkmMTFR+/bt07p167R69Wpt3rxZw4YNu1RdOK9z9fHUqVP67LPPNGHCBH322Wd6++23lZ2drd///vdntJ06darLcR05cuSlKP+8zncMJalPnz4utf/zn/90WV6fj6Ekl77l5ubq1VdflcViUUJCgks7Mx7DC3lfON/fzfLycsXHx6ukpERbt27V0qVLtWTJEk2cOLF2ijZgGIZh3HDDDUZycrLzdXl5uREREWGkpaXVYVU1Iz8/35BkbNq0yTnv1ltvNf785z/XXVEXadKkSUanTp2qXFZQUGB4eXkZK1ascM778ssvDUlGZmbmJaqwZv35z382rrzySqOiosIwjPp9/CQZK1eudL6uqKgwbDab8dxzzznnFRQUGD4+PsY///lPwzAMY//+/YYkY+fOnc42H3zwgWGxWIzvvvvuktV+oX7bx6rs2LHDkGR88803znmRkZHGiy++WLvF1YCq+peUlGT069fvrOs0xGPYr18/4/bbb3eZV1+O4W/fFy7k7+aaNWsMDw8Pw+FwONssWLDAsFqtRnFxcY3XyAiKpJKSEmVl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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "And here are the small-HD-piece and small-enclave pops\n"
     ]
    },
    {
     "data": {
      "image/png": "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adNG06dPV2Vl5Tn72bNnTz311FMaPHjwef947vmMTZLmz5+vn/zkJwoMDFT79u312muvebT7+Pho/vz56t+/v0JCQtSmTRv94x//OK8+XAzOoHxPXXyvWxvqw3fDABqOr776SkOGDNGcOXN0991369ixY/rwww89noS7ceNGtWzZUlu2bNHWrVs1bNgwbdu2TX369FFWVpbefPNN/eEPf9DPf/5ztWzZUpLUuHFjLV68WDExMcrNzdXw4cPVuHFjPfbYYxfc1xMnTmjWrFl69dVXFRgYqAcffFCDBw/W1q1bz1q/dOlSTZkyRS+++KK6deum3bt3a/jw4WrUqJFSUlJUWlqqm2++WS1atNDbb7+t6Oho/etf/7J+WPfDDz/Ufffdp7lz5+qmm27Sp59+qhEjRkiSpk6desHjuJCxrVy5Ug8//LCef/55JSYmavXq1frtb3+rli1b6mc/+5m1n8mTJ2v27Nl64YUX9Nprr2nw4MHKzc1Vx44da7W/30VA+Z7L/b1ubWjI3w0DsKevvvpKlZWVuueeexQbGytJ6tSpk0dNZGSk5s6dK19fX7Vv315z5szRiRMn9Mc//lGSNHHiRM2ePVsfffSRBg8eLEmaNGmStf3VV1+tRx99VMuXL7+ogFJRUaEXX3xRCQkJkqQlS5aoY8eO2rFjh2644YYz6qdOnapnnnlG99xzjyQpLi5O+/fv11/+8helpKRo2bJl+vrrr7Vz505FRkZKktq2bWttP336dD3++ONKSUmRJLVp00YzZ87UY489VusB5cfG9vTTT+v+++/Xgw8+KEkaN26ctm/frqefftojoPzqV7/S73//e0nSzJkztX79es2bN++MM0e1iYByDnyvCwAXrkuXLurbt686deqkpKQk9evXT7/85S/VpEkTq+baa6/1eKiX0+nUddddZ7328/NT06ZNVVhYaK178803NXfuXH366acqLS1VZWXlRf8mm7+/v3r27Gm97tChgyIiInTgwIEzAsrx48f16aefatiwYRo+fLi1vrKyUuHhp/9m5OTkqFu3blY4+b49e/Zo69atmjVrlrWuqqpKp06d0okTJxQaGnpR4/FmbAcOHLDO3tS48cYb9cILL3isc7lcZ7y+1Hc1EVAAALXOz89P69ev17Zt2/T+++9r3rx5+tOf/qSsrCzFxcVJkgICAjy28fHxOeu6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mJjosT47O1sVFRUe6zt06KDWrVsrMzNTkpSZmalOnTrJ6XRaNUlJSSopKdG+ffvOeryysjKVlJR4LAAA4Mrl7+0Gy5cv17/+9S/t3LnzjDa3263AwEBFRER4rHc6nXK73VbNd8NJTXtN29mkpaVp+vTp3nYVAADUU16dQTl8+LAefvhhLV26VMHBwZeqT2eYOHGiiouLreXw4cOX7dgAAODy8yqgZGdnq7CwUNdff738/f3l7++vzZs3a+7cufL395fT6VR5ebmKioo8tisoKFB0dLQkKTo6+oy7empe19R8X1BQkBwOh8cCAACuXF4FlL59+yo3N1c5OTnW0qNHDyUnJ1v/DggIUEZGhrVNXl6e8vPz5XK5JEkul0u5ubkqLCy0atavXy+Hw6H4+PhaGhYAAKjPvLoGpXHjxrruuus81jVq1EhNmza11g8bNkzjxo1TZGSkHA6HRo8eLZfLpV69ekmS+vXrp/j4eA0dOlRz5syR2+3WpEmTlJqaqqCgoFoaFgAAqM+8vkj2xzz33HPy9fXVoEGDVFZWpqSkJL300ktWu5+fn1avXq2RI0fK5XKpUaNGSklJ0YwZM2q7KwAAoJ666ICyadMmj9fBwcFKT09Xenr6ObeJjY3V2rVrL/bQAADgCsVv8QAAANshoAAAANshoAAAANshoAAAANshoAAAANshoAAAANshoAAAANshoAAAANshoAAAANshoAAAANshoAAAANshoAAAANshoAAAANshoAAAANshoAAAANshoAAAANshoAAAANshoAAAANshoAAAANshoAAAANshoAAAANshoAAAANshoAAAANshoAAAANshoAAAANshoAAAANshoAAAANshoAAAANshoAAAANshoAAAANshoAAAANshoAAAANshoAAAANshoAAAANshoAAAANvxKqDMnz9fnTt3lsPhkMPhkMvl0rvvvmu1nzp1SqmpqWratKnCwsI0aNAgFRQUeOwjPz9fAwYMUGhoqKKiojR+/HhVVlbWzmgAAMAVwauA0rJlS82ePVvZ2dnatWuXbr31Vt11113at2+fJGns2LF65513tGLFCm3evFlffvml7rnnHmv7qqoqDRgwQOXl5dq2bZuWLFmixYsXa8qUKbU7KgAAUK/5e1N85513eryeNWuW5s+fr+3bt6tly5ZauHChli1bpltvvVWS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uffee/X1119rypQpcrvd6tq1q9atWyen01lXXZJ0+uukqVOnnvGVUkPFfHhiPjwxH2diTjwxH56Yj/NXZ89BAQAAOBd+zRgAANgOAQUAANgOAQUAANgOAQUAANgOAeU70tPTdfXVVys4OFgJCQnasaN+/dJujS1btujOO+9UTEyMfHx8tGrVKo92Y4ymTJmi5s2bKyQkRImJifrkk088ao4ePark5GQ5HA5FRERo2LBhKi0t9aj597//rZtuuknBwcFq1aqV5syZc0ZfVqxYoQ4dOig4OFidOnXS2rVra328PyQtLU09e/ZU48aNFRUVpYEDByovL8+j5tSpU0pNTVXTpk0VFhamQYMGnfEQwfz8fA0YMEChoaGKiorS+PHjVVlZ6VGzadMmXX/99QoKClLbtm21ePHiM/pjh/fY/Pnz1blzZ+tBUS6XS++++67V3tDm4/tmz54tHx8fjRkzxlrXkOZk2rRp8vHx8Vg6dOhgtTekuahx5MgR/eY3v1HTpk0VEhKiTp06adeuXVZ7Q/pMvaxq47d1rgTLly83gYGB5m9/+5vZt2+fGT58uImIiDAFBQV13TWvrV271vzpT38yb731lpFkVq5c6dE+e/ZsEx4eblatWmX27NljfvGLX5i4uDhz8uRJq+a2224zXbp0Mdu3bzcffvihadu2rRkyZIjVXlxcbJxOp0lOTjZ79+41b7zxhgkJCTF/+ctfrJqtW7caPz8/M2fOHLN//34zadIkExAQYHJzcy/5HNRISkoyixYtMnv37jU5OTnm9ttvN61btzalpaVWzQMPPGBatWplMjIyzK5du0yvXr3MT3/6U6u9srLSXHfddSYxMdHs3r3brF271lx11VVm4sSJVs1nn31mQkNDzbhx48z+/fvNvHnzjJ+fn1m3bp1VY5f32Ntvv23WrFljPv74Y5OXl2f++Mc/moCAALN3715jTMObj+/asWOHufrqq03nzp3Nww8/bK1vSHMydepUc+2115qvvvrKWr7++murvSHNhTHGHD161MTGxpr777/fZGVlmc8++8y899575uDBg1ZNQ/pMvZwIKP/rhhtuMKmpqdbrqqoqExMTY9LS0uqwVxfv+wGlurraREdHm6eeespaV1RUZIKCgswbb7xhjDFm//79RpLZuXOnVfPuu+8aHx8fc+TIEWOMMS+99JJp0qSJKSsr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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "### THIS IS THE \"FIND DISCO\" CODE\n",
    "print(\"quick classification: who has contiguity problems?\")\n",
    "nUnbroken, nNoEnclave, smallPieceLists, enclaveLists, sPgenerator, eLgenerator = 0., 0., list(), list(), list(), list()\n",
    "smallPieceLengths, enclaveLengths = list(), list()\n",
    "doubleTroubleList = list()\n",
    "startTime = time.time()\n",
    "for i,t in enumerate(popHDlist):\n",
    "    if i%700 == 0:\n",
    "        print(\"working on HD\",t,\"time is now\",int(time.time() - startTime) )\n",
    "    unbroken, noEnclave,smallPieceList,enclaveList = enclaveCheck(HDunitList[t], unitNbrs,4) #,6) #6 is high (slow) to try to avoid false enclaves\n",
    "    if unbroken:\n",
    "        nUnbroken +=1\n",
    "    if noEnclave:\n",
    "        nNoEnclave +=1\n",
    "    if not unbroken:\n",
    "        smallPieceLists.append(smallPieceList)\n",
    "        smallPieceLengths.append(len(smallPieceList))\n",
    "        sPgenerator.append(t)\n",
    "    if not noEnclave and unbroken:   #district is contiguous but contains 1+ enclave\n",
    "        enclaveLists.append(enclaveList)\n",
    "        enclaveLengths.append(len(enclaveList))\n",
    "        eLgenerator.append(t)\n",
    "    if not noEnclave and not unbroken:  #extremely discontig (\"broken\") HDs can appear to have enclaves;\n",
    "        doubleTroubleList.append(t)\n",
    "print(\"out of\",len(popHDlist),\"total HDs, there were\",nUnbroken,\"contiguous and\",nNoEnclave,\"complement-contiguous HDs\")\n",
    "print(len(doubleTroubleList),\"HDs had both discontiguity problems, while enclave-only =\",len(eLgenerator),\n",
    "      \"and discontig only=\",len(sPgenerator)-len(doubleTroubleList) )\n",
    "\n",
    "print(\"here are the histograms of the small piece and enclave list lengths, total no =\",\n",
    "      len(smallPieceLists),len(enclaveLists) )\n",
    "plt.hist([s for s in smallPieceLengths],label=\"small piece l units\",histtype='step',\n",
    "         cumulative=True,bins=[0,1,2,3,4,5,6,8,10,12,15,20,25,30,35,40,45,50,60,80,120,200])\n",
    "plt.hist([e for e in enclaveLengths],label=\"enclave l units\",histtype='step',\n",
    "         cumulative=True,bins=[0,1,2,3,4,5,6,8,10,12,15,20,25,30,35,40,45,50,60,80,120,200])\n",
    "plt.legend()\n",
    "plt.show()\n",
    "print(\"And here are the small-HD-piece and small-enclave pops\")\n",
    "plt.hist([sum(unitPop[u] for u in s) for s in smallPieceLists],label=\"small piece 1 pop\",histtype='step')\n",
    "plt.hist([sum(unitPop[u] for u in e) for e in enclaveLists],label=\"enclave 1 pop\",histtype='step')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "id": "095c12cc-0cac-4e15-beeb-797d750c664b",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "118962.0888030888\n"
     ]
    }
   ],
   "source": [
    "aDP = np.average([countyADP[c] for c in liveCountyList])  #set a nominal aDP\n",
    "print(aDP)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "id": "40f06e44-45be-4a36-b62c-26698af70e06",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Before addressing enclaves, let's triage the discontinuous HDs\n",
      "Now work on dropping smallish disconnected pieces that would keep us above 113013 district pop vs 118962 target\n",
      "we'll also trim any HD with total islands' pop <= 2379\n",
      "working on HD 1191\n",
      "working on HD 6842\n",
      "working on HD 7096\n",
      "working on HD 7357\n",
      "working on HD 8036\n",
      "Out of 810 discontig HDs 810 had discontig HDs.\n",
      "Of these, 756 won't be under 113013 after all minor discontigys were shed, while 54 would be too underpopped if we trimmed the discontig pieces\n",
      "here is adjusted pop by original pop for those we trimmed and those we didn't (x)\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Now, reclassify after the trimming\n",
      "reclassifying HD 1191\n",
      "reclassifying HD 7222\n",
      "There are 54 HDs still with both discontinuity problems\n",
      "Additionally, 695 of the originally discontig HDs are now contig but still have an enclave\n"
     ]
    }
   ],
   "source": [
    "print(\"Before addressing enclaves, let's triage the discontinuous HDs\")\n",
    "#this is the CANTRIM code####\n",
    "\n",
    "#for t in sPgenerator:\n",
    "#    isContig, smallP = isContiguous(filledHDvtdList[t],unitNbrs)\n",
    "#    if isContig:\n",
    "#        print(\"oops!\",t)\n",
    "maxNudgeDownPop = int(0.02 * aDP)\n",
    "minPostFixPop = int(0.95 * aDP)\n",
    "print(\"Now work on dropping smallish disconnected pieces that would keep us above\",minPostFixPop,\"district pop vs\",int(aDP),\"target\")\n",
    "print(\"we'll also trim any HD with total islands' pop <=\",maxNudgeDownPop)\n",
    "nOrigIslands = [0 for t in range(nHDs)]\n",
    "totalIslandPop = [0. for t in range(nHDs)]\n",
    "tryToTrim, canTrim, cantTrim = list(), list(), list()\n",
    "for jj, t in enumerate(sPgenerator):\n",
    "    if jj%200 == 0:\n",
    "        print(\"working on HD\",t)\n",
    "    currList, shedList, shedPop = HDunitList[t].copy(), list(),  0.\n",
    "    done,newList = isContiguous(currList,unitNbrs)\n",
    "    if not done:\n",
    "        tryToTrim.append(t)\n",
    "        while not done:\n",
    "            shedList += newList\n",
    "            shedPop += np.sum( [unitPop[u] for u in newList] )\n",
    "            currList = list (  set(currList).difference(set(newList ))  )\n",
    "            done, newList = isContiguous(currList, unitNbrs)\n",
    "            nOrigIslands[t] +=1\n",
    "            \n",
    "        totalIslandPop[t] = shedPop            \n",
    "        if shedPop <= maxNudgeDownPop or HDvPop[t] - shedPop >= minPostFixPop:\n",
    "            canTrim.append(t)\n",
    "            HDvPop[t] -= shedPop\n",
    "            HDunitList[t] = list (set(HDunitList[t]).difference(set(shedList)) )\n",
    "        else:\n",
    "            cantTrim.append(t)\n",
    "print(\"Out of\",len(sPgenerator),\"discontig HDs\",len(tryToTrim),\"had discontig HDs.\")\n",
    "print(\"Of these,\",len(canTrim),\"won't be under\",minPostFixPop,\"after all minor discontigys were shed, while\",\n",
    "      len(cantTrim),\"would be too underpopped if we trimmed the discontig pieces\")\n",
    "plt.scatter([HDvPop[t] + totalIslandPop[t] for t in canTrim],[HDvPop[t] for t in canTrim])\n",
    "plt.scatter([HDvPop[t]                     for t in cantTrim],[HDvPop[t] for t in cantTrim],marker=\"x\")\n",
    "print(\"here is adjusted pop by original pop for those we trimmed and those we didn't (x)\")\n",
    "plt.plot([0.9*aDP, 1.1*aDP],[aDP, aDP], ls=\"--\")\n",
    "plt.show()\n",
    "\n",
    "print(\"Now, reclassify after the trimming\")\n",
    "badDiscoList, stillHasEnclave = list(), list()\n",
    "for i, t in enumerate(sPgenerator):    \n",
    "    if i%500 == 0:\n",
    "        print(\"reclassifying HD\",t)\n",
    "    unbroken, noEnclave, __, ____ = enclaveCheck(HDunitList[t], unitNbrs)\n",
    "    if not unbroken:\n",
    "        badDiscoList.append(t)  #will do a major triage on these later\n",
    "    if unbroken and not noEnclave:\n",
    "        stillHasEnclave.append(t)\n",
    "print(\"There are\",len(badDiscoList),\"HDs still with both discontinuity problems\")\n",
    "print(\"Additionally,\",len(stillHasEnclave),\"of the originally discontig HDs are now contig but still have an enclave\")\n",
    "eLgenerator += stillHasEnclave"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "id": "4037f8cb-661b-4032-bfb9-e147975e3bbb",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Classify further: ID those with adjoiners intersecting the map boundary vs internal islands\n",
      "working on enclave-generating HD 1190\n",
      "working on enclave-generating HD 7337\n",
      "working on enclave-generating HD 7257\n",
      "Out of 1262 HDpolys that generated enclaves, 0 had contiguous adjrs, while 866 neighbored a state boundary while 396 had only internal enclaves\n"
     ]
    }
   ],
   "source": [
    "print(\"Classify further: ID those with adjoiners intersecting the map boundary vs internal islands\")\n",
    "internals, edgers, nOK = list(), list(), 0\n",
    "for i,t in enumerate(eLgenerator):\n",
    "    if i%500 == 0:\n",
    "        print(\"working on enclave-generating HD\",t)\n",
    "    twoNbrs = get2nbrs(HDunitList[t],unitNbrs)\n",
    "    isContig, adjSublist = isContiguous(twoNbrs,unitNbrs)\n",
    "    if isContig:\n",
    "        nOK +=1\n",
    "    else:\n",
    "        if len (set(getAdjoiners(HDunitList[t],unitNbrs)).intersection(set(borderUnits)))  > 0:\n",
    "            edgers.append(t)\n",
    "        else:\n",
    "            internals.append(t)\n",
    "print(\"Out of\",len(eLgenerator),\"HDpolys that generated enclaves,\",nOK,\"had contiguous adjrs, while\",len(edgers),\n",
    "      \"neighbored a state boundary while\",len(internals),\"had only internal enclaves\")\n",
    "   "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "id": "05f929ce-4f94-47a6-baf4-60c5a89e2ae5",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Now, let's fill in all enclaves that won't put us over 124910 district pop vs 118962 target\n",
      "working on enclave-y HD 1190 . We have evaluated 0 of 1262 enclavy HDs.Time is now 0\n",
      "working on enclave-y HD 6836 . We have evaluated 200 of 1262 enclavy HDs.Time is now 2\n",
      "working on enclave-y HD 1200 . We have evaluated 400 of 1262 enclavy HDs.Time is now 5\n",
      "working on enclave-y HD 1553 . We have evaluated 600 of 1262 enclavy HDs.Time is now 6\n",
      "working on enclave-y HD 1293 . We have evaluated 800 of 1262 enclavy HDs.Time is now 8\n",
      "working on enclave-y HD 7051 . We have evaluated 1000 of 1262 enclavy HDs.Time is now 10\n",
      "working on enclave-y HD 7491 . We have evaluated 1200 of 1262 enclavy HDs.Time is now 12\n",
      "Out of 1262 HDs with enclaves 1262 had enclaves.\n",
      "Of these, 1229 wouldn't be over 124910 if all enclaves filled, while 33 were too populous\n",
      "here is enclave pop by final pop for those we filled\n"
     ]
    },
    {
     "data": {
      "image/png": "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/Orjjz8W/vCHPwjvvvuuAEB47733nJ7/5z//KSxatEhYtWqVAEDYv39/h318/vnngtFoFBYvXiyUlZUJR44cEd5++22hsbHRvs348eOF6667Tti1a5fw2WefCX379hUmTZpkf76+vl5ISUkRJk+eLJSVlQlr164V4uLihJdfftm+zc6dO4WoqChhyZIlQnl5uTB//nwhOjpaOHTokOrXxd/UuO5jx44VbrjhBmH37t1CRUWF8PTTTwt6vV7Yt2+ffRted2eerntdXZ2QnZ0tvP3228KRI0eE4uJiYcSIEcKwYcOc9hGoa/rss88KJpNJeP/994UDBw4Id955p5Ceni5cunTJfxfIj3y99p988olw//33C5s2bRIqKiqEDz74QEhOThYeffRR+za89h2p8ZkX/e53vxNuvfXWDn+TeN1dYwATQK4aUlFlZaXbhnTkyJHC/Pnz3e63vLxcACDs3bvX/tgnn3wi6HQ64dtvvxUEQRBWrFghdO3aVWhqarJvk5+fL1xzzTX2n3/1q18Jubm5HY798MMPS3l7IUvpdU9ISBD++c9/Oj2WlJQkrFq1ShAEXndvPF130Z49ewQAwsmTJwVBCNw1tdlsgtlsFp5//nn783V1dYLBYBDWrl2r7A2HECXX3pUlS5YI6enp9p957T3z5bp//PHHQv/+/YXDhw93+JvE6+4ah5BC3NmzZ7F7924kJyfjpz/9KVJSUvAf//Ef2LFjh32b4uJiJCYmYvjw4fbHsrOzodfrsXv3bvs2N910E2JiYuzb5OTk4OjRozh37px9m+zsbKfj5+TkoLi42J9vMWT99Kc/xdtvv43a2lrYbDasW7cOjY2N+NnPfgaA110N9fX10Ol0SExMBBC4a1pZWQmLxeK0jclkwsiRIyPiugMdr727bZKSkuw/89r7ztV1r66uxvTp0/G///u/iI+P7/AaXnfXGMCEuK+//hoA8NRTT2H69OkoKCjA0KFDccstt9jHLi0WC5KTk51e16lTJyQlJcFisdi3SUlJcdpG/NnbNuLzkWb9+vVoaWlBt27dYDAY8PDDD+O9995D3759AfC6+6qxsRH5+fmYNGmSfZG6QF1T8b+ReN0B19e+vePHj+Nvf/sbHn74YftjvPa+cXXdBUHA/fffjxkzZjgF7o543V1jABPibDYbAODhhx/G1KlTcf3112Pp0qW45ppr8NprrwX57MLbggULUFdXh82bN+OLL77A3Llz8atf/QqHDh0K9qlpXktLC371q19BEAS89NJLwT6diCLl2n/77bcYP348fvnLX2L69OkBPsPw5O66/+1vf8P58+cxb968IJ6dNjGACXGpqakAgIyMDKfHBwwYgFOnTgEAzGYzzp496/T85cuXUVtbC7PZbN+murraaRvxZ2/biM9HkoqKCixfvhyvvfYabrnlFlx33XVYuHAhhg8fjr///e8AeN2VEv+Qnzx5EoWFhU49AIG6puJ/I+m6A56vvejMmTO4+eab8dOf/hSvvPKK03O89sp4uu5FRUUoLi6GwWBAp06d7D28w4cPx5QpUwDwurvDACbE9enTB2lpaTh69KjT41999RV69+4NAMjKykJdXR1KSkrszxcVFcFms2HkyJH2bbZv346Wlhb7NoWFhbjmmmvQtWtX+zZbtmxxOk5hYSGysrL88t5C2cWLFwEAer3zVyQqKsreK8brLp/4h/zYsWPYvHkzunXr5vR8oK5peno6zGaz0zZWqxW7d+8Oy+sOeL/2QFvPy89+9jMMGzYMr7/+eofPP6+9fN6u+4svvogDBw6gtLQUpaWl9qnPb7/9Nv70pz8B4HV3K7g5xOHv/Pnzwv79+4X9+/cLAIS//vWvwv79++0Z6DU1NcL+/fuFjRs3CgCEdevWCfv37xeqqqrs+1i6dKlgNBqFd955Rzh27Jgwf/58ITY2Vjh+/Lh9m/HjxwvXX3+9sHv3bmHHjh1Cv379nKae1tXVCSkpKcJ9990nlJWVCevWrRPi4+M7TMPr1KmT8Je//EX48ssvhYULF2p2Oq+v1725uVno27evcOONNwq7d+8Wjh8/LvzlL38RdDqdsHHjRvtxeN2debruzc3Nwp133in06NFDKC0tFaqqquz/HGdXBOqaPvvss0JiYqLwwQcfCAcPHhTuuusuTU8p9fXaf/PNN0Lfvn2FW265Rfjmm2+cthHx2nekxmfekauZkbzurjGA8bNPP/1UANDh35QpUwRBEITXX3/d5fMLFy502s/ixYuFHj16CPHx8UJWVpbw2WefOT1fU1MjTJo0SejcubNgNBqFqVOnCufPn3fa5sCBA8Lo0aMFg8EgXHnllcKzzz7b4XzXr18vXH311UJMTIxw7bXXOjXWWqLGdf/qq6+Eu+++W0hOThbi4+OFwYMHd5hWzevuzNN1F/8wu/r36aef2vcRqGtqs9mEBQsWCCkpKYLBYBBuueUW4ejRo365LoHg67V3951of5/La+9Mjc+8I3elHXjdO9IJgiD41odDREREFFjMgSEiIiLNYQBDREREmsMAhoiIiDSHAQwRERFpDgMYIiIi0hwGMERERKQ5DGCIiIhIcxjAEBERkeYwgCEiIiLNYQBDREREmsMAhoiIiDSHAQwRERFpzv8DxnSzjEtE1/YAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "### THIS IS THE \"CANFILL\" CODE  #check if sum of enclave pops small enough to add\n",
    "maxNudgeUpPop = int(0.02 * aDP)\n",
    "maxPostFixPop = int(1.05 * aDP)\n",
    "print(\"Now, let's fill in all enclaves that won't put us over\",maxPostFixPop,\"district pop vs\",int(aDP),\"target\")\n",
    "nOrigEnclaves = [0 for t in range(nHDs)]\n",
    "totalEnclavePop = [0. for t in range(nHDs)]\n",
    "tryToFill, canFill, cantFill = list(), list(), list()\n",
    "startTime = time.time()  #takes about xx sec per HD triage\n",
    "        \n",
    "for iii, t in enumerate(internals + edgers):\n",
    "    if iii%200 == 0:\n",
    "        print(\"working on enclave-y HD\",t,\". We have evaluated\",iii,\"of\",len(internals+edgers),\"enclavy HDs.Time is now\",int(time.time() - startTime) )\n",
    "    unbroken, noEnclave,smallPieceList,enclaveList = enclaveCheck(HDunitList[t], unitNbrs)\n",
    "    if unbroken and not noEnclave:  #\"and unbroken\" new 1/15 - discontig HDs will usually appear to have enclaves.  We'll fix these in later block\n",
    "        tryToFill.append(t)\n",
    "        enclaveLists = getEnclaveLists(HDunitList[t], unitNbrs)\n",
    "        nOrigEnclaves[t] = len(enclaveLists)\n",
    "        totalEnclavePop[t] = np.sum( [ [np.sum([unitPop[u] for u in eL])] for eL in enclaveLists ] ) \n",
    "        if HDvPop[t] + totalEnclavePop[t] <= maxPostFixPop or totalEnclavePop[t] < maxNudgeUpPop:\n",
    "            canFill.append(t)\n",
    "            for eL in enclaveLists:\n",
    "                HDunitList[t] += eL\n",
    "                HDvPop[t] += np.sum([unitPop[u] for u in eL])\n",
    "        else:\n",
    "            cantFill.append(t)\n",
    "print(\"Out of\",len(internals+edgers),\"HDs with enclaves\",len(tryToFill),\"had enclaves.\")\n",
    "print(\"Of these,\",len(canFill),\"wouldn't be over\",maxPostFixPop,\"if all enclaves filled, while\",len(cantFill),\"were too populous\")\n",
    "plt.scatter([HDvPop[t] for t in canFill],[totalEnclavePop[t] for t in canFill])\n",
    "print(\"here is enclave pop by final pop for those we filled\")\n",
    "plt.show()\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "id": "8987ad1f-d372-415d-a2ec-8fc6736c5102",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "396 866 733 472\n",
      "33 33 1229\n"
     ]
    }
   ],
   "source": [
    "print(len(internals),len(edgers),len(doubleTroubleList),len(set(edgers).intersection(set(doubleTroubleList))))\n",
    "print(len(set(edgers).difference(set(canFill))) ,len(cantFill) , len(canFill))\n",
    "#610 3379 2187 1954\n",
    "#80 80 3909  for original MN option3 (assigned CCBs by captured area)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "id": "8fa887be-92e6-422a-8e80-e00fd3265aab",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "defining and displaying current unit use after above manipulations; compare to original farther above.\n",
      "current avg use and its sd are 1.00569 0.08739\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(\"defining and displaying current unit use after above manipulations; compare to original farther above.\")\n",
    "unitUse = [0. for u in range(nUnits)]\n",
    "for t in range(nHDs):\n",
    "    for u in HDunitList[t]:\n",
    "        unitUse[u] += HDweight[t] #               * nDistricts\n",
    "activeUnitDistro, activeUnitWeights = list(), list()\n",
    "for u in range(nUnits):\n",
    "    if unitUse[u] > 0.1:\n",
    "        activeUnitDistro.append(unitUse[u])\n",
    "        activeUnitWeights.append(unitPop[u]/statePop)\n",
    "plt.hist(activeUnitDistro, weights=activeUnitWeights, bins = 20, histtype = \"step\")\n",
    "#plt.show()\n",
    "currAvg, currSD = getWeightedAvgAndSD(activeUnitDistro, activeUnitWeights)\n",
    "print(\"current avg use and its sd are\",r5(currAvg),r5(currSD) )\n",
    "for u, unitNo in enumerate(allUnits):\n",
    "    if unitNo % 1 == 0.25:\n",
    "        print(\"CCB cluster\",int(unitNo),\"= unit\",u,\"with pop\",unitPop[u],\"now has use of\",unitUse[u])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "id": "e9d50ef8-39b2-4e22-a11e-cabeda78721e",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "savedHDunitList = [HDunitList[t].copy() for t in range(nHDs) ]  #safekeeping"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "id": "b759b3c7-b8a3-4d2c-a8fe-50fa93b3e940",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "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r1ddunTRRRddpL///e8BY+h7ayfqfWNjo6ZPn66BAweqS5cuSk9P180336w9e/YEbONU9dUYo1mzZqlHjx5KSEhQbm6utmzZErxmnEIn2/cdO3Zo8uTJyszMVEJCgs4991zNnj1bDQ0NAa9D31sLxs/8MfX19RoyZEibv5fofRsMOuzdd981v//9782bb75pJJklS5YErH/55ZfNnDlzzPPPP28kmXXr1rXaxieffGI8Ho8pKSkxGzduNN98841ZvHixOXr0qDNm7NixZvDgwWbt2rXm448/Nn369DETJkxw1tfV1Zm0tDQzceJEs3HjRvPqq6+ahIQE89e//tUZ849//MPExsaaefPmmc2bN5uZM2eaTp06ma+++irofQm1YPT9qquuMiNGjDAVFRVm27Zt5qGHHjIxMTHmiy++cMbQ99ZO1Pva2lqTm5trFi9ebL755htTXl5uLr74YjNs2LCAbZyqvs6dO9ckJSWZt956y3z55ZfmmmuuMZmZmebIkSOha1CInGzf33vvPXPLLbeY999/32zbts28/fbbJjU11dxzzz3OGPretmD8zB/zm9/8xowbN67V7yV63zYCSpC09UF5zPbt24/7QZmVlWVmzpx53O1u3rzZSDKfffaZs+y9994zLpfLfP/998YYY55++mlzxhlnmPr6emfM9OnTTd++fZ3HN9xwg8nPz2/12lOnTv0pb89aHe17ly5dzMsvvxywLCUlxTz//PPGGPr+U5yo98d8+umnRpL57rvvjDGnrq8tLS3G6/Wahx9+2FlfW1tr3G63efXVVzv2hi3Rkb63Zd68eSYzM9N5TN9/3Mn0/t133zX9+vUzmzZtavV7id63jV08YbRv3z5VVFQoNTVVl156qdLS0vTzn/9ca9asccaUl5crOTlZw4cPd5bl5uYqJiZGFRUVzphRo0YpPj7eGZOXl6eqqir95z//ccbk5uYGvH5eXp7Ky8tD+Ratdemll2rx4sWqqalRS0uLXnvtNR09elSjR4+WRN+Dpa6uTi6Xy/nurFPV1+3bt8vn8wWMSUpKUlZW1mnR+x/2/XhjUlJSnMf0PTja6n11dbWmTJmiv/3tb0pMTGz1HHrfNgJKGP3zn/+UJD3wwAOaMmWKSktLddFFFyknJ8fZb+jz+ZSamhrwvLi4OKWkpMjn8zljfngF3mOPf2zMsfWnm9dff12NjY3q3r273G63pk6dqiVLlqhPnz6S6HswHD16VNOnT9eECROcL0I7VX099u/p2Pu2+v5DW7du1fz58zV16lRnGX0/eW313hijW265RbfffntAMP9f9L5tBJQwamlpkSRNnTpVt956q4YOHarHHntMffv21Ysvvhjm6qLb/fffr9raWi1fvlyff/65ioqKdMMNN+irr74Kd2lRobGxUTfccIOMMXrmmWfCXc5p46f0/fvvv9fYsWP1i1/8QlOmTDnFFUav4/V+/vz5OnDggIqLi8NYXWQioIRRjx49JEkDBgwIWN6/f3/t3LlTkuT1erVv376A9U1NTaqpqZHX63XGVFdXB4w59vjHxhxbfzrZtm2bnnzySb344ovKycnR4MGDNXv2bA0fPlxPPfWUJPp+Mo79ov7uu+9UVlYW8Ff8qerrsX9Pp96fqO/H7NmzR1dccYUuvfRSPffccwHr6HvHnaj3K1euVHl5udxut+Li4pxZ2uHDh2vSpEmS6P3xEFDCqHfv3kpPT1dVVVXA8m+//Va9evWSJGVnZ6u2tlaVlZXO+pUrV6qlpUVZWVnOmNWrV6uxsdEZU1ZWpr59++qMM85wxqxYsSLgdcrKypSdnR2S92azw4cPS5JiYgJ//GNjY51ZLfreMcd+UW/ZskXLly9X9+7dA9afqr5mZmbK6/UGjPH7/aqoqIjK3v9Y36X/zpyMHj1aw4YN04IFC1r9/NP3jvmx3j/xxBP68ssvtX79eq1fv945NXjx4sX64x//KIneH1d4j9GNbAcOHDDr1q0z69atM5LMo48+atatW+ccvb1//36zbt06s2zZMiPJvPbaa2bdunVm7969zjYee+wx4/F4zBtvvGG2bNliZs6caTp37my2bt3qjBk7dqwZOnSoqaioMGvWrDHnnXdewGmZtbW1Ji0tzdx0001m48aN5rXXXjOJiYmtTlGLi4szjzzyiPn666/N7NmzI/Z015Pte0NDg+nTp4+5/PLLTUVFhdm6dat55JFHjMvlMsuWLXNeh763dqLeNzQ0mGuuucb07NnTrF+/3uzdu9e5/e/ZCaeqr3PnzjXJycnm7bffNhs2bDDXXnttxJ5yebJ93717t+nTp4/Jyckxu3fvDhhzDH1vWzB+5v9XW2cX0vu2EVBOwocffmgktbpNmjTJGGPMggUL2lw/e/bsgO2UlJSYnj17msTERJOdnW0+/vjjgPX79+83EyZMMF27djUej8fceuut5sCBAwFjvvzySzNy5EjjdrvNz372MzN37txW9b7++uvm/PPPN/Hx8eaCCy4I+DCOJMHo+7fffmuuv/56k5qaahITE82gQYNanXZM31s7Ue+P/eJt6/bhhx862zhVfW1paTH333+/SUtLM2632+Tk5JiqqqqQ9CXUTrbvx/s/8cO/Uel7a8H4mf9fx7v8Ab1vzWWMMSc3BwMAABBcHIMCAACsQ0ABAADWIaAAAADrEFAAAIB1CCgAAMA6BBQAAGAdAgoAALAOAQUAAFiHgAIAAKxDQAEAANYhoAAAAOsQUAAAgHX+P9UNBjphCdbaAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#savedHDunitList = [HDunitList[t].copy() for t in range(nHDs) ]  #safekeeping\n",
    "HDunitList = [savedHDunitList[t].copy() for t in range(nHDs) ]   #restart\n",
    "HDvPop = [0 for t in range(nHDs)]\n",
    "for t in popHDlist:\n",
    "    for u in HDunitList[t]:\n",
    "        HDvPop[t] += unitPop[u]\n",
    "plt.axvline(aDP, ls=\"--\")\n",
    "plt.hist([HDvPop[t] for t in popHDlist],bins=20)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "id": "551454fb-d57c-466f-8b31-39ccb2a728de",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "here are the HD centers for 33 cantFill HDs with border or big enclaves\n"
     ]
    },
    {
     "data": {
      "image/png": "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ePERA0ufPn14//332bZtGy1btmTdunUsXryYf/7zn0e9vtfrxes9OE+9qqrq996KEEKIM0i4m6j+15e5bWyD50UBj9PxqMeoqnpIgPn1FQwGUVWVUChUt83r9db9XluQQ1YoH9wFUL4HPJUHX6EjtAop2roAU2JvBVlj+M5nJ5SdS7ROS5ReR7ReS7TuwM8D76N0OvTHONbnt8r94TVvos/AFpbjrvGGDRvo3bs3Ho8Hm83G1KlTadu2LfHx8VitVh555BFeeOEFVFXl0UcfJRgMkp+ff8TyHn30UaqqqmjdujVarZZgMMjzzz/P9ddff9R6vPjiizz99NPHW30hhBDiiBRFqesCOmlUFQKe+gHGUwWeioPvvVW09lRzvS+bffGdWVftotwfpMIfoDoYOmyxNq0mHGB0vwkyde/D26J04cXjovU6ovRaSn3hwBKlO/PGsBx3l5DP52Pv3r1UVlbyzTff8OGHH7Jw4ULatm3LnDlzuPPOO9m1axcajYZrr72WzZs306NHD8aNG3fY8r788kseeughXnnlFdq1a8fatWu57777+Oc//8nNN998xHocroUlPT1duoSEEEL8ofhDKhWBAOX+IOUHFocr8weoONz7QPhnmT+IO3T4oAOw4+wO2CIktBxrl9AJj2EZPHgwzZo147333qvbVlJSgk6nIyoqiqSkJB544AEeeuihw56fnp7Oo48+yt1331237bnnnuPzzz+vey7DsZAxLEIIIcRBnmCIikA41JT/JszYdVouTohq7OrVOeVjWH4VCoXqtXRAeKU/gHnz5lFUVMTFF198uFMBcLlch8wg0mq1hI6SDIUQQghxdCathiSthiRj5C8KdyyOK7CMGTOG4cOHk5GRQXV1NRMnTmTBggXMnj0bgE8++YQ2bdoQHx/PsmXLuPfeexk9ejStWrWqK2PQoEGMGDGCUaNGAXDRRRfx/PPPk5GRQbt27fjll1/45z//ya233noSb1MIIYQQZ7LjCixFRUXcdNNN5Ofn43Q66dixI7Nnz65bijg7O5sxY8ZQVlZGZmYmjz32GKNHj65XRk5ODiUlJXXv3377bZ544gnuuusuioqKSElJ4a9//StPPvkkQgghhBBwEsawRAoZwyKEEEKceY71+/vwy88KIYQQQkQQCSxCCCGEiHgSWIQQQggR8SSwCCGEECLiSWARQggh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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(\"here are the HD centers for\",len(cantFill),\"cantFill HDs with border or big enclaves\")\n",
    "for u in borderUnits:\n",
    "    plotPoly(unitGeom[u])\n",
    "for t in cantFill:\n",
    "    plotPoly(hdCP[t].buffer(0.02))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "id": "5269a224-4a97-417c-99af-6a98df0087ae",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "working on avg unit-to-HDcp dist for HD 1190\n",
      "working on avg unit-to-HDcp dist for HD 6987\n",
      "all unit-toHDcp distances computed\n"
     ]
    }
   ],
   "source": [
    "barredJettisonSet = set([]) #set([9776,9777,9778] )  #lock in the clusters  #UPDATE THIS FOR EACH STATE - see CCB report 3 blocks up\n",
    "avgDist = [0. for t in range(nHDs)]  #about 6sec per 1000 HDs\n",
    "for i,t in enumerate(popHDlist):\n",
    "    if i%800 == 0:\n",
    "        print(\"working on avg unit-to-HDcp dist for HD\",t)\n",
    "    avgDist[t] =  np.sum([unitPop[u]*unitCP[u].distance(hdCP[t]) for u in HDunitList[t] ]) / HDvPop[t]\n",
    "print(\"all unit-toHDcp distances computed\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "id": "6e2e44bd-a084-42f6-b533-5dc6d21912a9",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "this code will solve large enclaves so HD and complement are contiguous for 33 HDs\n",
      "working on HD 1199 cantFill 0 of 33 .Time is now 0\n",
      "working on HD 1735 cantFill 20 of 33 .Time is now 0\n",
      "after the MustFree code run, we have the following for cluster usage\n",
      "current avg use and its sd are 1.00528 0.08828\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#THIS IS THE MUSTFREE CODE - for high-pop HDs with map-border enclaves, can't fill; \n",
    "#  must jettison some inHD map-boundary units to connect the enclave to the larger complement\n",
    "#For each HD to be triaged, define the list(s) of contiguous enclave units that are on the map boundary, \n",
    "#  and the in-HD map-boundary segments.  ID which in-HD MBS's adjoin one vs. two enclaves.\n",
    "#     Fill all internal enclaves, and all boundary enclaves < 0.05 aDP.\n",
    "#   Then each loop, look for boundary enclaves that can be filled without overpopping.\n",
    "#     If none, pick the 1/2 has-1-boundary-enclave-neighbor that is least painful to jettison to free an enclave.\n",
    "#       (Jettison score based on pop-to-Free and distance from HDcP)\n",
    "#         Update HDpop, HDlist, and enclave & HD-boundary associations, then re-loop\n",
    "# Later, we will swell-fill to square up pop (w/ checkEnclave) biasing toward close-to-hdCP, underused\n",
    "borderSet = set(borderUnits)\n",
    "debug, debugPlot = False, False\n",
    "startTime = time.time()  #takes about 1.5sec per HD triage\n",
    "clusterJettisonBoost = 3.  #this discourages jettisoning of underused clusters\n",
    "print(\"this code will solve large enclaves so HD and complement are contiguous for\",len(cantFill),\"HDs\")\n",
    "nEnclavesPerHD = [0 for t in range(nHDs)]\n",
    "HDenclaveLists = [list() for t in range(nHDs)]\n",
    "for iii,t in enumerate(cantFill):\n",
    "    if iii %20 == 0:\n",
    "        print(\"working on HD\",t,\"cantFill\",iii,\"of\",len(cantFill),\".Time is now\",int(time.time() - startTime) )\n",
    "    shedUs = list()    \n",
    "    enclaveLists = getEnclaveLists(HDunitList[t], unitNbrs)\n",
    "    nEnclavesPerHD[t] = len(enclaveLists)\n",
    "    HDenclaveLists[t] = enclaveLists.copy()\n",
    "    if debug:\n",
    "        print(\"pre-adjust HDpop for HD\",t,\"is\",HDvPop[t],\"I found\",len(enclaveLists),\"TOTAL enclaves\")\n",
    "    internalEnclaves, edgeEnclaves, combinedEnclBorderList = list(), list(), list()\n",
    "    for jjj, eL in enumerate(enclaveLists.copy() ):\n",
    "        enclaveBorderList = list ( set(eL).intersection(borderSet) )\n",
    "        if debug:\n",
    "            print(\"In enclave\",jjj,\"I found\",len(enclaveBorderList),\"units that were enclaved and are in the map borderSet\")\n",
    "        combinedEnclBorderList += enclaveBorderList\n",
    "        ePop = np.sum( [unitPop[u] for u in eL] )\n",
    "        if len(enclaveBorderList) == 0 or ePop < 0.05 * aDP:  #internal or small enclave.  Fill it\n",
    "            if ePop > 0:  #in a prev treatment, could be an empty (surrounded) unit that we don't care about\n",
    "                HDunitList[t] += eL\n",
    "                HDvPop[t] += ePop\n",
    "            internalEnclaves.append(eL)\n",
    "        else:\n",
    "            edgeEnclaves.append(eL)\n",
    "    if debug:\n",
    "        print(\"Of these\",len(internalEnclaves),\"were internal or small, so I filled them, leaving\",\n",
    "              len(edgeEnclaves),\"non-small border = edge enclaves\" )\n",
    "    if debugPlot:\n",
    "        print(\"Here is the original HD, internal enclaves ('x') and non-small border enclaves by enclave no\")\n",
    "        plotPoly(hdCP[t].buffer(0.3))\n",
    "        for u in HDunitList[t]:\n",
    "            if unitPop[u] > 0:\n",
    "                plotPoly(unitGeom[u],0.2)\n",
    "        for L in internalEnclaves:\n",
    "            for u in L:\n",
    "                if unitPop[u] > 0:\n",
    "                    plotPoly(unitGeom[u],1.5)\n",
    "                    plotCenter(\"x\",unitCP[u],8)\n",
    "        for L in edgeEnclaves: #############\n",
    "            for u in L:\n",
    "                if unitPop[u] > 0:\n",
    "                    plotPoly(unitGeom[u])\n",
    "                    #plotCenter(\"e\",unitCP[u],8)\n",
    "        #plotPoly(MAP,0.4)\n",
    "        #plt.show()\n",
    "    enclaveLists, combinedEnclBorderSet = list(), set(combinedEnclBorderList)\n",
    "    if len(edgeEnclaves) > 0:\n",
    "        # Now, we order by chain connectivity of HD and enclave sublists to be H0-E0-H1-E1 ... En-Hn+1\n",
    "        nonHDborderSet = borderSet.difference(  set(HDunitList[t]) )\n",
    "        nonHDlongBorderSet = nonHDborderSet.difference(combinedEnclBorderSet) #long=non HD boundary excluding enclaves\n",
    "        remainingEnclBorderSet = combinedEnclBorderSet.copy()\n",
    "        remainingHDborderSet =   borderSet.intersection(set(HDunitList[t]) )\n",
    "        #Now find the \"HDender\" unit which borders the non-enclave nonHD boundary, then find opp end of this HD bdry piece\n",
    "        HDender = list(set(getAdjoiners(nonHDlongBorderSet,unitNbrs)).intersection(remainingHDborderSet) )[0]\n",
    "        firstHDborderSet = getContigFromStarter(HDender,remainingHDborderSet,unitNbrs)\n",
    "        HDstarter = list(set(getAdjoiners(remainingEnclBorderSet,unitNbrs)).intersection(firstHDborderSet))[0]\n",
    "        HDborderSublists = [ list(firstHDborderSet) ]\n",
    "        unused = [1 for eL in edgeEnclaves]\n",
    "        eLadjoiners = [getAdjoiners(eL,unitNbrs) for eL in edgeEnclaves ]\n",
    "        for j in range(len(edgeEnclaves)): #find the enclave with the most HDstarter neighbors (at least 1)\n",
    "            found = False\n",
    "            for i,eL in enumerate(edgeEnclaves):\n",
    "                if unused[i] == 1:\n",
    "                    HDadjSet = set(HDborderSublists[j]).intersection(set(eLadjoiners[i]))\n",
    "                    if len(HDadjSet) > 0:\n",
    "                        unused[i] = 0\n",
    "                        eNo = i\n",
    "                        found = True\n",
    "                        remainingEnclBorderSet = remainingEnclBorderSet.difference(set(edgeEnclaves[eNo]) )\n",
    "                        enclaveLists.append(edgeEnclaves[eNo])\n",
    "                        remainingHDborderSet = remainingHDborderSet.difference(set(HDborderSublists[j]) )\n",
    "                        if len(remainingHDborderSet) > 0: #for narrow peninsulas, separated border units may connect\n",
    "                            #this if statement was added for legisl OH\n",
    "                            HDstarter = list(set(eLadjoiners[i]).intersection(remainingHDborderSet))[0]       \n",
    "                            HDborderSublists.append(getContigFromStarter(HDstarter,remainingHDborderSet,unitNbrs) )\n",
    "                        break\n",
    "                if found:\n",
    "                    break\n",
    "\n",
    "        enclavePops = [np.sum([unitPop[u] for u in L]) for L in enclaveLists]\n",
    "        #print(\"prior to adjustments, border enclavePops are\",enclavePops)         \n",
    "\n",
    "        nHDBS, nEnclaves = len(HDborderSublists), len(enclaveLists)\n",
    "        popToFree, freeingCounties, freeingUnits = [0. for n in range(nHDBS)], [list() for n in range(nHDBS) \n",
    "                                                                               ],[list() for n in range(nHDBS)]\n",
    "        for j,L in enumerate(HDborderSublists):\n",
    "            for u in L:\n",
    "                if int(allUnits[u]) == allUnits[u]:  #this border unit is a vtd\n",
    "                    c = countyNo[parentVTDno[allUnits[u]]]   #countyNo[allUnits[u]]\n",
    "                    if c not in freeingCounties[j]:\n",
    "                        if countyPop[c] < 0.1 * aDP:  #plan to add all in-county pop\n",
    "                            freeingCounties[j].append(c)\n",
    "                        else:\n",
    "                            popToFree[j] += unitPop[u]\n",
    "                            freeingUnits[j].append(u)\n",
    "                else: #border unit is a full county or cluster, or in a dense county.  Add the whole unit pop\n",
    "                    popToFree[j] += unitPop[u]\n",
    "                    freeingUnits[j].append(u)\n",
    "            for c in freeingCounties[j]:  #include ALL in-HD pop from each non-unit border county, not just its border units\n",
    "                #plotPoly(countyGeom[c],0.1)\n",
    "                for u in countyUnitList[c]:\n",
    "                    if u in HDunitList[t]:\n",
    "                        popToFree[j] += unitPop[u]\n",
    "                        freeingUnits[j].append(u)\n",
    "        freeingCP = [ getHDcp(  unitCP, unitPop, L) for L in freeingUnits ]\n",
    "        freeingScore = [ pTF/aDP - 0.5*freeingCP[j].distance(hdCP[t]) / avgDist[t] for j,pTF in enumerate(popToFree) ]\n",
    "        for j, fU in enumerate(freeingUnits):  #in above 0.5 is a fudgy\n",
    "            if len(barredJettisonSet.intersection(set(fU)) ) > 0: #has a cluster we want to hold onto\n",
    "                freeingScore[j] += clusterJettisonBoost #  ..so increase its score (make it harder to drop)\n",
    "        if debugPlot:\n",
    "            print(\"plotting the freeing units with negative numbers for each freeing group\")\n",
    "            for j,L in enumerate(freeingUnits):\n",
    "                for u in L:\n",
    "                    if unitPop[u] > 0:\n",
    "                        #plotPoly(unitGeom[u],0.5)\n",
    "                        plotCenter(\"-\"+str(j),unitGeom[u],6)\n",
    "                        pass\n",
    "            print(\"plotting the enclaveLists, with + numbers for each enclave\")\n",
    "            for j,L in enumerate(enclaveLists):\n",
    "                for u in L:\n",
    "                    if unitPop[u] > 0:\n",
    "                        plotPoly(unitGeom[u])\n",
    "                        plotCenter(j,unitCP[u],8)\n",
    "                        pass\n",
    "    \n",
    "    while len(enclaveLists) > 0:\n",
    "        if HDvPop[t] + np.min(enclavePops) < 1.05*aDP or np.min(enclavePops) < 0.05 * aDP:  #fill the smallest enclave\n",
    "            eNo = enclavePops.index(np.min(enclavePops))\n",
    "            HDunitList[t] += enclaveLists[eNo]\n",
    "            HDvPop[t] += enclavePops[eNo]\n",
    "            #print(t,\"=t. Absorbing enclave\",eNo,\"with pop\",enclavePops[eNo],\"HD total pop now\",int(HDfreePop[t]) )\n",
    "            enclaveBUs = list(set(enclaveLists[eNo]).intersection(set(borderUnits)) )\n",
    "            enclaveBpop = np.sum([unitPop[u] for u in enclaveBUs])\n",
    "            sNo, dropped_sNo = eNo, eNo+1\n",
    "            freeingScore[sNo] += freeingScore[sNo+1]+enclaveBpop/aDP\n",
    "            freeingUnits[sNo] += freeingUnits[sNo+1]+enclaveBUs\n",
    "            popToFree[sNo]    +=    popToFree[sNo+1]+enclaveBpop\n",
    "        else: #jettison one of the two end HD border lists; pick the less painful path to freedom\n",
    "            distList = [hdCP[t].distance(unitCP[u]) for u in HDunitList[t] ]\n",
    "            starterU = HDunitList[t][distList.index(np.min(distList))]\n",
    "            eNo, dropped_sNo = 0,0\n",
    "            if starterU not in freeingUnits[-1]:  #we can't drop the home unit, even to save an underused corner\n",
    "                if freeingScore[-1] < freeingScore[0] or starterU in freeingUnits[0]:\n",
    "                    eNo, dropped_sNo = len(enclaveLists)-1,len(enclaveLists)\n",
    "            barredIncluded0 = barredJettisonSet.intersection(set(freeingUnits[0]))\n",
    "            barredIncluded_1 = barredJettisonSet.intersection(set(freeingUnits[-1]))\n",
    "            #if len(barredIncluded0.union(barredIncluded_1)) > 0:\n",
    "            #    print(\"We are considering dropping an end unit to free from t\",t,\". Chosen, beg, end, scores are\")\n",
    "            #    print(dropped_sNo,barredIncluded0, barredIncluded_1, freeingScore[0], freeingScore[-1])\n",
    "            HDunitList[t] = list( set(HDunitList[t]).difference(set(freeingUnits[dropped_sNo]) ) )\n",
    "            HDvPop[t] -= popToFree[dropped_sNo]\n",
    "            #print(t,\"= t. Jettisoning HDborder\",dropped_sNo,\"with popToFree\",popToFree[dropped_sNo] )\n",
    "        del enclaveLists[eNo]\n",
    "        del enclavePops[eNo]\n",
    "        if debug:\n",
    "            print(t,\"= t. Now we have\",len(enclaveLists),\"left trapped.  Picked eNo, freeScores were\", eNo,freeingScore)\n",
    "        del freeingScore[dropped_sNo]\n",
    "        del freeingUnits[dropped_sNo]\n",
    "        del popToFree   [dropped_sNo] \n",
    "\n",
    "    #plotPoly(MAP,0.4)\n",
    "    if debugPlot:\n",
    "        plt.show()    \n",
    "        \n",
    "unitUse = [0.]*nUnits\n",
    "for t in popHDlist:\n",
    "    for u in HDunitList[t]:\n",
    "        unitUse[u] += HDweight[t]   #*nDistricts\n",
    "print(\"after the MustFree code run, we have the following for cluster usage\")\n",
    "activeUnitDistro, activeUnitWeights = list(), list()\n",
    "for u in range(nUnits):\n",
    "    if unitUse[u] > 0.1:\n",
    "        activeUnitDistro.append(unitUse[u])\n",
    "        activeUnitWeights.append(unitPop[u]/statePop)\n",
    "plt.hist(activeUnitDistro, weights=activeUnitWeights, bins = 20, histtype = \"step\")\n",
    "#plt.show()\n",
    "currAvg, currSD = getWeightedAvgAndSD(activeUnitDistro, activeUnitWeights)\n",
    "print(\"current avg use and its sd are\",r5(currAvg),r5(currSD) )\n",
    "for u, unitNo in enumerate(allUnits):\n",
    "    if unitNo % 1 == 0.25:\n",
    "        print(\"CCB cluster\",int(unitNo),\"= unit\",u,\"with pop\",unitPop[u],\"now has use of\",unitUse[u])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0a61ea86-0982-4098-8217-68cebc9d77c0",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "id": "ca9ce3cb-c150-4f39-ae55-f781d39d7f57",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "postMustFreeUnitList = [HDunitList[t].copy() for t in range(nHDs)] #safekeeping"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "id": "c32dd108-073b-48aa-99ce-fea50c8d023c",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "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p08fJSYmKicnRzt37nTGf/e73ykmJqbFZePGjZKkPXv2tDi+fv36iGMtW7ZM/fr1U9euXTVgwAD9+te/jqqWtu79tdde0/Dhw52n527evPmIfRw+fFiFhYXq2bOnunfvrvz8/CMehldRUaG8vDwlJSUpNTVVkyZNUkNDQ8Sc3/3ud7r88svlcrl0/vnna9GiRUcc6/nnn1ffvn3VtWtXZWdna8OGDe3W+/79+3XffffpwgsvVGJiojIyMnT//fc7v7OpWUvnfenSpe3ae1v0L0nXXnvtEb3dc889EXM647k/2r/nmJgYLVv2z99/YuO5P1bv9fX1mjx5sgYMGKBu3bopLS1Nd955pyorKyP2sX//fhUUFMjtdis5OVljxozRwYMHI+Z8+OGH+va3v62uXbsqPT1ds2bNOqIWm17vTqT3PXv2aMyYMcrMzFRiYqLOO+88TZ8+XXV1dRFzbHytb4v+Jalv375H9DZz5syIOTae+6gYi/z61782//Vf/2Vee+01I8m8/vrrEeMzZ840Ho/HvPHGG+ZPf/qTuemmm0xmZqb56quvjDHG1NbWms8++yxi+c///E+TmZlpmpqajDHG7N6920gyq1evjphXV1fnHOf99983cXFxZtasWWbbtm1mypQppkuXLmbLli0nXEtb9/6LX/zCPProo+bFF180ksymTZuO2Mc999xj0tPTTWlpqfnggw/M0KFDzZVXXumMNzQ0mIsvvtjk5OSYTZs2mV//+temV69epri42Jnzl7/8xSQlJZmioiKzbds289xzz5m4uDizcuVKZ87SpUtNQkKCeemll8zWrVvN2LFjTXJysqmqqmqX3rds2WJuueUW89Zbb5ldu3aZ0tJSc8EFF5j8/PyIeZLMwoULI877189Xe/TeFv0bY8x3vvMdM3bs2IjeQqGQM95Zz31DQ8MR/+YfffRR0717d3PgwAFnno3n/li919TUmJycHPOrX/3KfPzxxyYQCJghQ4aYQYMGRexjxIgR5tJLLzXr1683v//97835559vbr/9dmc8FAoZr9drCgoKzEcffWR++ctfmsTERPPzn//cmWPb692J9L5ixQrzwx/+0Lz77rvmk08+MW+++aZJTU01Dz74oDPH1tf6tujfGGPOOeccM2PGjIjeDh486Izbeu6jYVVA+bpvnrSmpibj8/nMU0895ayrqakxLpfL/PKXv2xxH3V1daZ3795mxowZzrrmb9qWXuSb3XbbbSYvLy9iXXZ2trn77rtbXUs0WnqhPl79NTU1pkuXLmbZsmXOuu3btxtJJhAIGGP+8Y8iNjbWBINBZ868efOM2+02tbW1xhhjHnroIXPRRRdF7PsHP/iByc3Ndb4eMmSIKSwsdL5ubGw0aWlppqSkpFX9fl1rem/Jq6++ahISEkx9ff0J7duY9u/9eDUeq//vfOc75sc//vFR93smnfuBAweau+6664T3bYzdvTfbsGGDkWQ+/fRTY4wx27ZtM5LMxo0bnTkrVqwwMTEx5q9//asxxpi5c+eaHj16OOfYGGMmT55sLrzwQudrm1/vmn2z95bMmjXLZGZmOl93hNd6Y1rf/znnnGNmz5591G06wrk/Hqt+xHMsu3fvVjAYVE5OjrPO4/EoOztbgUCgxW3eeustffHFFy0+nfamm25Samqqrr76ar311lsRY4FAIOI4kpSbm+scpzW1nGrl5eWqr6+PqKlfv37KyMhwagoEAhowYEDEw/Byc3MVDoe1detWZ86xeq+rq1N5eXnEnNjYWOXk5LRb7y0JhUJyu92Kj498FmFhYaF69eqlIUOG6KWXXor4ld8dvfdXXnlFvXr10sUXX6zi4mJ9+eWXztiZcu7Ly8u1efNmjRkz5oixjn7uQ6GQYmJinN9DFggElJycrMGDBztzcnJyFBsbq7KyMmfONddco4SEBGdObm6uduzYob///e/OHNtf777Z+9HmpKSkHLG+M7zWH63/mTNnqmfPnrrsssv01FNPRfzItjOc+w7x24wlKRgMStIRT5r1er3O2DctWLBAubm5Ovvss5113bt3189+9jNdddVVio2N1f/93//p5ptv1htvvKGbbrrJOdaxjtOaWk61YDCohISEI76Bv1l3SzU3jx1rTjgc1ldffaW///3vamxsbHHOxx9/3JYttdrf/vY3PfbYYxo3blzE+hkzZui6665TUlKSfvOb3+jee+/VwYMHdf/990vq2L3/+7//u8455xylpaXpww8/1OTJk7Vjxw699tprks6cc79gwQL1799fV155ZcT6jn7uDx8+rMmTJ+v22293fgFcMBhUampqxLz4+HilpKREnNPMzMwjam4e69Gjh/Wvdy31/k27du3Sc889p6efftpZ11le64/W//3336/LL79cKSkpWrdunYqLi/XZZ5/pmWeecWrv6Oe+wwSUaO3bt0/vvvuuXn311Yj1vXr1UlFRkfP1FVdcocrKSj311FPONy06rnA4rLy8PGVlZemRRx6JGJs6darz58suu0yHDh3SU0895bxJdWRfD2MDBgxQnz59NGzYMH3yySc677zz2rGy0+err77SkiVLIs5zs4587uvr63XbbbfJGKN58+a1dzmn1Yn0/te//lUjRozQ97//fY0dO9ZZ3xle64/V/9d7u+SSS5SQkKC7775bJSUlneIx95Jld/Eci8/nk6Qj7kqpqqpyxr5u4cKF6tmz5wl9I2ZnZ2vXrl0RxzrWcaKt5XTw+Xyqq6tTTU3NUWs6Wl/NY8ea43a7lZiYqF69eikuLs6q3psdOHBAI0aM0FlnnaXXX39dXbp0Oeb87Oxs7du3T7W1tZI6du/flJ2dLUnO93VnP/eS9L//+7/68ssvdeeddx53bkc5981vUJ9++qlWrVoV8T9on8+n6urqiPkNDQ3av39/m/ybb+/Xu2P13qyyslLf/e53deWVV+qFF1447j470mv9ifT/ddnZ2WpoaNCePXskdexz36zDBJTMzEz5fD6VlpY668LhsMrKyuT3+yPmGmO0cOFC3Xnnncd9k5KkzZs3q0+fPs7Xfr8/4jiStGrVKuc40dRyugwaNEhdunSJqGnHjh2qqKhwavL7/dqyZUvEi1rzN35WVpYz51i9JyQkaNCgQRFzmpqaVFpa2m69S//4+x8+fLgSEhL01ltvqWvXrsfdZvPmzerRo4fzv42O2ntLmm/Hbf6+7sznvtmCBQt00003qXfv3sed2xHOffMb1M6dO7V69Wr17NkzYtzv96umpkbl5eXOuvfee09NTU1OQPX7/Vq7dq3q6+sj+rrwwgvVo0cPZ45tr3fH6136x5WTa6+9VoMGDdLChQsVG3v8t7OO8lp/Iv1/0+bNmxUbG+v82K+jnvsIp/xjuFE4cOCA2bRpk9m0aZORZJ555hmzadMm55PLM2fONMnJyebNN980H374ofne977X4u1Oq1evNpLM9u3bjzjGokWLzJIlS8z27dvN9u3bzRNPPGFiY2PNSy+95Mx5//33TXx8vHn66afN9u3bzfTp01u89epEammr3r/44guzadMm88477xhJZunSpWbTpk3ms88+c/Zxzz33mIyMDPPee++ZDz74wPj9fuP3+53x5ltNhw8fbjZv3mxWrlxpevfu3eKtppMmTTLbt283zz//fIu3W7pcLrNo0SKzbds2M27cOJOcnBxxh8jp7D0UCpns7GwzYMAAs2vXrojb7hoaGowxxrz11lvmxRdfNFu2bDE7d+40c+fONUlJSWbatGnt2ntb9L9r1y4zY8YM88EHH5jdu3ebN99805x77rnmmmuucY7RWc99s507d5qYmBizYsWKI45h67k/Vu91dXXmpptuMmeffbbZvHlzxPf01+/KGDFihLnssstMWVmZ+cMf/mAuuOCCiNuMa2pqjNfrNXfccYf56KOPzNKlS01SUtIRt5ra9Hp3Ir3v27fPnH/++WbYsGFm3759EXOa2fpa3xb9r1u3zsyePdts3rzZfPLJJ+bll182vXv3NnfeeadzDFvPfTSsCii//e1vjaQjltGjRxtj/nHL09SpU43X6zUul8sMGzbM7Nix44j93H777RHP//i6RYsWmf79+5ukpCTjdrvNkCFDIm7Nbfbqq6+ab33rWyYhIcFcdNFF5p133okYP9Fa2qr3hQsXtjg+ffp0Zx9fffWVuffee02PHj1MUlKS+bd/+7cjXsj37NljRo4caRITE02vXr3Mgw8+GHErbnMtAwcONAkJCebcc881CxcuPKLe5557zmRkZJiEhAQzZMgQs379+nbr/WjbSzK7d+82xvzj9suBAwea7t27m27duplLL73UzJ8/3zQ2NrZr723Rf0VFhbnmmmtMSkqKcblc5vzzzzeTJk2KeA6KMZ3z3DcrLi426enpR5xPY+w998fqvfkW2ZaW3/72t84+vvjiC3P77beb7t27G7fbbX70ox9FPP/FGGP+9Kc/mauvvtq4XC7zL//yL2bmzJlH1GLT692J9H6074uv/5/b1tf6tui/vLzcZGdnG4/HY7p27Wr69+9vnnzySXP48OGI49h47qMRY8zX7rUDAACwQIf5DAoAADhzEFAAAIB1CCgAAMA6BBQAAGAdAgoAALAOAQUAAFiHgAIAAKxDQAEAANYhoAAAAOsQUAAAgHUIKAAAwDoEFAAAYJ3/B31Z2PnQciwjAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist([HDvPop[t] for t in popHDlist] )\n",
    "plt.axvline(aDP,ls=\"--\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "id": "f58fe2d0-3c62-412f-8984-ff5d67ea9b10",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After above work, re-classification of contiguity problems?\n",
      "working on HD 1500\n",
      "working on HD 7000\n",
      "working on HD 7500\n",
      "out of 1446 total HDs, there were 1379 28 0 39 HDs that were clean, discontig only, enclave-only, both problems after triage\n"
     ]
    }
   ],
   "source": [
    "#THIS is the FINDSTILLBROKEN code\n",
    "print(\"After above work, re-classification of contiguity problems?\")\n",
    "discontigOnly, enclaveOnly, bothProblems, cleanList = list(), list(), list(), list()\n",
    "for t in popHDlist:\n",
    "    if t%500 == 0:\n",
    "        print(\"working on HD\",t)\n",
    "    unbroken, noEnclave,smallPieceList,enclaveList = enclaveCheck(HDunitList[t], unitNbrs)\n",
    "    if unbroken and noEnclave:\n",
    "        cleanList.append(t)\n",
    "    if unbroken and not noEnclave:\n",
    "        enclaveOnly.append(t)\n",
    "    if not unbroken and noEnclave:\n",
    "        discontigOnly.append(t)\n",
    "    if not unbroken and not noEnclave:\n",
    "        bothProblems.append(t)\n",
    "print(\"out of\",len(popHDlist),\"total HDs, there were\",len(cleanList),len(discontigOnly),len(enclaveOnly),\n",
    "      len(bothProblems),\"HDs that were clean, discontig only, enclave-only, both problems after triage\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "id": "b78fc5e4-4ef5-409f-80fa-fda2e3a76098",
   "metadata": {},
   "outputs": [],
   "source": [
    "unitArea = [unitGeom[u].area for u in range(nUnits)]\n",
    "HDpoly = [dummyPoly for t in range(nHDs)]\n",
    "for t in popHDlist:\n",
    "    HDpoly[t] = unitGeom[HDunitList[t][0]]\n",
    "    for u in HDunitList[t]:\n",
    "        HDpoly[t] = HDpoly[t].union(unitGeom[u])\n",
    "        "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "id": "1ef683a2-4429-4a91-b1ea-a9b0950dea22",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "working on current HD diam for HD number 1190\n",
      "working on current HD diam for HD number 6987\n",
      "here is the histogram of HD diameter = sqrt(area)\n"
     ]
    },
    {
     "data": {
      "image/png": "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qubmZqWkpARsT0lJ0aeffnrO+NLSUs2dO/ec7enp6WGrEQCAS5nr2fDNffToUblcrm8cE5GAEqySkhIVFxf711taWnT48GH17NlTUVFRkv4vlaWnp+vAgQNyOp2RKvWio2/6vhTQN31fCi6Fvo0xOnr0qNLS0r51bEQCSq9evRQTE6P6+vqA7fX19XK73eeMdzgccjgcAdsSExNbndvpdHbaX+w3oe9LC31fWuj70tLZ+/62MydnReQi2bi4OA0dOlRVVVX+bS0tLaqqqpLH44lESQAAwCIR+4inuLhYhYWFGjZsmK6//no9++yzOn78uH70ox9FqiQAAGCJiAWUu+66S19++aXmzJkjr9erwYMHa926dedcOHuhHA6HHnvssXM+Curs6Ju+LwX0Td+Xgku17/OJMhdyrw8AAMBFxHfxAAAA6xBQAACAdQgoAADAOgQUAABgHasDysKFC9W3b1/Fx8crJydHW7du/cbxq1atUv/+/RUfH6+srCz9/ve/P2fMJ598ottvv10ul0vdunXT8OHDtX///nC10Cah7vvYsWOaNm2aevfura5du/q/nNE2wfS9Y8cOFRQUqG/fvoqKitKzzz7b7jkjJdR9l5aWavjw4erRo4eSk5N1xx13aNeuXWHsoG3C8fs+q6ysTFFRUZo+fXpoiw6BcPT9l7/8Rffee6969uyprl27KisrSx988EGYOmibUPfd3NysRx99VP369VPXrl11xRVX6Iknnrig73i5mILp+8UXX9T3vvc9XXbZZbrsssuUm5t7znhjjObMmaPU1FR17dpVubm52r17d7jbiAxjqZUrV5q4uDjzq1/9yuzYscNMnjzZJCYmmvr6+lbH//GPfzQxMTFm/vz5ZufOnWb27NmmS5cuZvv27f4xe/bsMUlJSWbmzJnmww8/NHv27DGvvfbaeeeMhHD0PXnyZHPFFVeYd9991+zbt8/88pe/NDExMea11167WG19q2D73rp1q3nooYfMyy+/bNxut3nmmWfaPWckhKPvvLw8s3TpUvPxxx+buro6M3bsWJORkWGOHTsW5m4uXDj6/vuxffv2NdnZ2ebBBx8MTwNtFI6+Dx8+bPr06WPuv/9+s2XLFvP555+b9evXmz179oS5mwsXjr6ffPJJ07NnT1NRUWH27dtnVq1aZbp3726ee+65MHdz4YLt+5577jELFy40H330kfnkk0/M/fffb1wul/niiy/8Y8rKyozL5TJr1qwxf/rTn8ztt99u+vXrZ/72t79drLYuGmsDyvXXX2+Kior8683NzSYtLc2Ulpa2Ov5f/uVfTH5+fsC2nJwc82//9m/+9bvuusvce++94Sk4RMLR98CBA828efMCxlx33XXmpz/9aQgrb59g+/57ffr0afUNrD1zXizh6PvrGhoajCRTXV3dnlJDKlx9Hz161Fx11VWmsrLS3HzzzdYFlHD0PWvWLHPjjTeGssyQC0ff+fn55l//9V8Dto0fP95MmDCh3fWGSnvfg86cOWN69Ohhli9fbowxpqWlxbjdbvPzn//cP+bIkSPG4XCYl19+ObTFW8DKj3hOnTql2tpa5ebm+rdFR0crNzdXNTU1rR5TU1MTMF6S8vLy/ONbWlr0xhtv6Oqrr1ZeXp6Sk5OVk5OjNWvWhK2PYIWjb0n67ne/q9dff11/+ctfZIzRu+++q88++0yjRo0KTyNBakvfkZgz1C5WjY2NjZKkpKSkkM3ZHuHsu6ioSPn5+ef8n7BBuPp+/fXXNWzYMP3zP/+zkpOTNWTIEL344ouhKDkkwtX3d7/7XVVVVemzzz6TJP3pT3/Se++9pzFjxrS75lAIRd8nTpzQ6dOn/f939+3bJ6/XGzCny+VSTk6ONe9roWRlQPnrX/+q5ubmc54qm5KSIq/X2+oxXq/3G8c3NDTo2LFjKisr0+jRo/XWW2/pn/7pnzR+/HhVV1eHp5EghaNvSVqwYIEyMzPVu3dvxcXFafTo0Vq4cKFuuumm0DfRBm3pOxJzhtrFqLGlpUXTp0/XDTfcoEGDBoVkzvYKV98rV67Uhx9+qNLS0vaWGBbh6vvzzz/X4sWLddVVV2n9+vWaOnWq/v3f/13Lly9vb8khEa6+H3nkEd19993q37+/unTpoiFDhmj69OmaMGFCe0sOiVD0PWvWLKWlpfkDydnjbH5fC6WIPer+YmtpaZEkjRs3TjNmzJAkDR48WJs2bdKSJUt08803R7K8sFqwYIE2b96s119/XX369NHGjRtVVFQU8A8fnVNRUZE+/vhjvffee5EuJawOHDigBx98UJWVlYqPj490ORdVS0uLhg0bpqeeekqSNGTIEH388cdasmSJCgsLI1xd+LzyyitasWKFysvLNXDgQNXV1Wn69OlKS0vrFH2XlZVp5cqV2rBhwyX3b/osKwNKr169FBMTo/r6+oDt9fX1crvdrR7jdru/cXyvXr0UGxurzMzMgDEDBgyw5s07HH3/7W9/009+8hOtXr1a+fn5kqTs7GzV1dXp6aeftiKgtKXvSMwZauGucdq0aaqoqNDGjRvVu3fvds8XKuHou7a2Vg0NDbruuuv825qbm7Vx40b993//t5qamhQTE9OuutsrXL/v1NTUVt/X/ud//qfNc4ZSuPqeOXOm/yyKJGVlZel///d/VVpaakVAaU/fTz/9tMrKyvT2228rOzvbv/3scfX19UpNTQ2Yc/DgwaEr3hJWfsQTFxenoUOHqqqqyr+tpaVFVVVV8ng8rR7j8XgCxktSZWWlf3xcXJyGDx9+zu2Wn332mfr06RPiDtomHH2fPn1ap0+fVnR04K86JibGf1Yp0trSdyTmDLVw1WiM0bRp07R69Wq988476tevXyjKDZlw9D1y5Eht375ddXV1/mXYsGGaMGGC6urqIh5OpPD9vm+44YZO9752IU6cONEp39fmz5+vJ554QuvWrdOwYcMC9vXr109utztgTp/Ppy1btljzvhZSkb5K93xWrlxpHA6HWbZsmdm5c6eZMmWKSUxMNF6v1xhjzMSJE80jjzziH//HP/7RxMbGmqefftp88skn5rHHHjvndttXX33VdOnSxbzwwgtm9+7dZsGCBSYmJsb84Q9/uOj9nU84+r755pvNwIEDzbvvvms+//xzs3TpUhMfH28WLVp00fs7n2D7bmpqMh999JH56KOPTGpqqnnooYfMRx99ZHbv3n3Bc9ogHH1PnTrVuFwus2HDBnPo0CH/cuLEiYve3/mEo++vs/EunnD0vXXrVhMbG2uefPJJs3v3brNixQqTkJBgfvOb31z0/s4nHH0XFhaaf/iHf/DfZvzqq6+aXr16mYcffvii93c+wfZdVlZm4uLizO9+97uA/7tHjx4NGJOYmGhee+01s23bNjNu3DhuM46EBQsWmIyMDBMXF2euv/56s3nzZv++m2++2RQWFgaMf+WVV8zVV19t4uLizMCBA80bb7xxzpwvvfSSufLKK018fLy59tprzZo1a8LdRtBC3fehQ4fM/fffb9LS0kx8fLy55pprzH/913+ZlpaWi9HOBQum73379hlJ5yw333zzBc9pi1D33dp+SWbp0qUXr6kLEI7f99+zMaAYE56+165dawYNGmQcDofp37+/eeGFFy5SNxcu1H37fD7z4IMPmoyMDBMfH2++853vmJ/+9KemqanpInb17YLpu0+fPq32/dhjj/nHtLS0mEcffdSkpKQYh8NhRo4caXbt2nURO7p4ooyx7LF7AADgkmflNSgAAODSRkABAADWIaAAAADrEFAAAIB1CCgAAMA6BBQAAGAdAgoAALAOAQUAAFiHgAIAAKxDQAEAANYhoAAAAOsQUAAAgHX+H3NLj4UkGKcgAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "HDdiam = [0. for t in range(nHDs)]\n",
    "for i,t in enumerate(popHDlist):\n",
    "    if i%800 == 0:\n",
    "        print(\"working on current HD diam for HD number\",t)\n",
    "    HDdiam[t] = np.sum([unitArea[u] for u in HDunitList[t] ])**0.5 #(HDpoly[t].intersection(MAP) ).area ** 0.5\n",
    "plt.hist([HDdiam[t] for t in popHDlist])\n",
    "print(\"here is the histogram of HD diameter = sqrt(area)\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "id": "45e3c17c-8c16-4bc5-b7fc-25b9250ed11a",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Here, we will regrow all disco'd HDs off by more than 5949 but less than 29740\n",
      "... from the contiguous block that contains the hdCP (not full regrowth).  We will swell out, avoiding enclaves\n",
      "This is a total of 67 HDs to triage in this block\n",
      "working on swell-filling discontig HD 1191 our 1 th HD swellable(?) of 67 0.0 sec elapsed\n",
      "working on swell-filling discontig HD 1484 our 41 th HD swellable(?) of 67 0.888 sec elapsed\n",
      "we partially regrew 59 HDs, leaving 8 to regrow from scratch\n"
     ]
    }
   ],
   "source": [
    "### THIS IS THE CANSWELL CODE\n",
    "print(\"Here, we will regrow all disco'd HDs off by more than\",int(aDP-minPostFixPop),\"but less than\",int(0.25*aDP) )\n",
    "print(\"... from the contiguous block that contains the hdCP (not full regrowth).  We will swell out, avoiding enclaves\")\n",
    "HDnAddedUnits = [0 for t in range(nHDs)]\n",
    "maxGap = 0.9 * np.median(unitPop)  #set a reasonable gap prior to picking the last bloc\n",
    "badDiscoList = list()\n",
    "nCanSwell = 0\n",
    "triageList = discontigOnly + bothProblems\n",
    "print(\"This is a total of\",len(triageList),\"HDs to triage in this block\")\n",
    "startTime = time.time()\n",
    " \n",
    "for i,t in enumerate(triageList): #canSwell\n",
    "    if i%40 == 0:\n",
    "        SEC = r3(time.time()-startTime)\n",
    "        print(\"working on swell-filling discontig HD\",t,\"our\",i+1,\"th HD swellable(?) of\",len(triageList),SEC,\"sec elapsed\" )\n",
    "    distList = [hdCP[t].distance(unitCP[u]) for u in HDunitList[t] ]\n",
    "    starterU = HDunitList[t][distList.index(np.min(distList))]  #starter = unit with centroid closest to the hd center\n",
    "    contigUs = getContigFromStarter(starterU, HDunitList[t], unitNbrs)\n",
    "    contigPop = np.sum( [ unitPop[u] for u in contigUs ] )\n",
    "    if contigPop < 0.50 * aDP or contigPop > 2.*aDP - minPostFixPop:  #formerly < 0.75 aDP\n",
    "        badDiscoList.append(t)\n",
    "    else: #rebuild from this big piece\n",
    "        nCanSwell +=1\n",
    "        gap = aDP - contigPop\n",
    "        origGap = gap\n",
    "        currList, addedList = contigUs.copy(), list()\n",
    "        adjoiners = getAdjoiners(currList, unitNbrs)\n",
    "        nearHDlist = [uu for uu in adjoiners]  #bias toward underused, close to HD (and its center)\n",
    "        nearHDscore = [ (unitUse[uu] - 1.) + 0.5*(unitCP[uu].distance(\n",
    "            HDpoly[t]) + unitCP[uu].distance(hdCP[t]) ) / HDdiam[t] for uu in adjoiners ] \n",
    "        stillGoing = True\n",
    "\n",
    "        while gap > maxGap and len(nearHDlist) > 0 and stillGoing:   #add the lowest-scoring neighboring underused unit until we've roughly squared the HDpop\n",
    "            idx, i, notYetPicked = np.argsort(nearHDscore), 0, True\n",
    "            while i < len(nearHDscore) and notYetPicked:        \n",
    "                listNo = idx[i]   #nearHDscore.index(np.min(nearHDscore))\n",
    "                unitNoToAdd = nearHDlist[listNo]  #add this unit ...\n",
    "                canAdd  = wontEnclave(unitNoToAdd, currList, unitNbrs, borderUnits)\n",
    "                if canAdd:\n",
    "                    notYetPicked = False\n",
    "                else:\n",
    "                    i +=1\n",
    "            if notYetPicked:\n",
    "                stillGoing = False  #can't add any more units without creating an enclave\n",
    "            else: #we selected the best unit to add legally\n",
    "                gap -= unitPop[unitNoToAdd]\n",
    "                addedList.append(unitNoToAdd)  #so add it to our growing HD ...\n",
    "                currList.append( unitNoToAdd)\n",
    "                for uu in unitNbrs[unitNoToAdd]:             # ... and add its nonHD neighbors to future candidates\n",
    "                    if uu not in currList and uu not in nearHDlist and unitPop[uu] < gap + maxGap:  \n",
    "                        nearHDlist.append(uu)\n",
    "                        nearHDscore.append((unitUse[uu] - 1.) + 0.5*(unitCP[uu].distance(\n",
    "                            HDpoly[t]) + unitCP[uu].distance(hdCP[t]) ) / HDdiam[t] )\n",
    "                del nearHDscore[nearHDlist.index(unitNoToAdd)]        \n",
    "                del nearHDlist[ nearHDlist.index(unitNoToAdd) ]\n",
    "                for i, uu in enumerate(nearHDlist.copy()):\n",
    "                    if unitPop[uu] > gap + maxGap:   #with the added pop from another unit, this unit is now too big to add\n",
    "                        del nearHDscore[nearHDlist.index(uu)]\n",
    "                        del nearHDlist[ nearHDlist.index(uu)]\n",
    "        for u in addedList:\n",
    "            unitUse[u] += HDweight[t] * nDistricts\n",
    "        for u in list( set(HDunitList[t]).difference(set(contigUs)) ):\n",
    "            unitUse[u] -= HDweight[t] * nDistricts       \n",
    "        HDunitList[t] = contigUs + addedList\n",
    "        HDvPop[t]    = np.sum( [unitPop[u] for u in HDunitList[t] ] )\n",
    "        HDnAddedUnits[t] = len(addedList)\n",
    "    \n",
    "badDiscoList += enclaveOnly\n",
    "print(\"we partially regrew\",nCanSwell,\"HDs, leaving\",len(badDiscoList),\"to regrow from scratch\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "id": "f57325dd-523c-466a-80cb-8e10b739b4ac",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "previous avg use and its sd are 1.00528 0.08828\n",
      "defining and displaying current unit use after above manipulations; compare to original farther above.\n",
      "current avg use and its sd are 1.00399 0.09144\n"
     ]
    },
    {
     "data": {
      "image/png": "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//zn/bULIWF3Hc6YOXOmVVBQ0NfthpXdtSgvL7dGjRplvfzyy9bHH39svfHGG9bVV19t3Xvvvf21CyFhdx3eeecd65VXXrH+9Kc/Wbt27bK+9a1vWVdddZV1/PjxftqD0Pjiiy+sffv2Wfv27bMkWatXr7b27dtnffrpp5ZlWdbixYutuXPn+uo//vhja8SIEdaiRYus999/36qsrLSioqKs2tra/tqFkLC7DpZl+eozMzOt+++/39q3b5/13nvv9Uf7IWV3LX73u99Zw4YNsyorK63PP//c9zhx4kR/7UJI2F2HtWvXWps3b7Y++ugj66OPPrL+6Z/+yRo1apT1+OOP23pdwk0vrVmzxrriiissh8NhZWVlWe+8847vudzcXKuwsNCvfvfu3VZ2drbldDqtCRMmWL/4xS+sr776qo+7Dj276/DBBx9Ykqw33nijjzsNPztr0d3dbT3xxBPW1VdfbUVHR1spKSnWD3/4w0H/Q92y7K3Djh07rClTplhOp9MaO3asNXfuXKupqakfug6tt956y5J0zuPMvhcWFlq5ubnnbJORkWE5HA5rwoQJ1m9/+9s+7zvUglmHQPVXXnlln/ceanbXIjc394L1g5XddfjVr35lXXfdddaIESOsuLg464YbbrB+/etfWz09PbZeN8KyBukxcQAAgAA45wYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMArhBgAAGIVwAwAAjEK4AQAARiHcAAAAo/wvb/ufmqy1o+QAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(\"previous avg use and its sd are\",r5(currAvg),r5(currSD) )\n",
    "print(\"defining and displaying current unit use after above manipulations; compare to original farther above.\")\n",
    "unitUse = [0. for u in range(nUnits)]\n",
    "for t in range(nHDs):\n",
    "    for u in HDunitList[t]:\n",
    "        unitUse[u] +=  HDweight[t]  #          * nDistricts\n",
    "activeUnitDistro, activeUnitWeights = list(), list()\n",
    "for u in range(nUnits):\n",
    "    if unitUse[u] > 0.1:\n",
    "        activeUnitDistro.append(unitUse[u])\n",
    "        activeUnitWeights.append(unitPop[u]/statePop)\n",
    "plt.hist(activeUnitDistro, weights=activeUnitWeights, bins = 20, histtype = \"step\")\n",
    "#plt.show()\n",
    "currAvg, currSD = getWeightedAvgAndSD(activeUnitDistro, activeUnitWeights)\n",
    "print(\"current avg use and its sd are\",r5(currAvg),r5(currSD) )\n",
    "\n",
    "for u, unitNo in enumerate(allUnits):\n",
    "    if unitNo % 1 == 0.25:\n",
    "        print(\"CCB cluster\",int(unitNo),\"= unit\",u,\"with pop\",unitPop[u],\"now has use of\",unitUse[u])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "id": "0ce918e1-0d30-4930-9fb8-0769d793683c",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "quick classification: who has contiguity problems?\n",
      "working on HD 1190 time is now 0\n",
      "working on HD 7187 time is now 1\n",
      "out of 1446 total HDs, there were 1438.0 contiguous and 1432.0 complement-contiguous HDs\n",
      "2 HDs had both discontiguity problems, while enclave-only = 12 and discontig only= 6\n",
      "here are the histograms of the small piece and enclave list lengths, total no = 8 12\n"
     ]
    },
    {
     "data": {
      "image/png": "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kjIzM9WlSxdH8Pitr776Sps3b9aMGTMc68rLy3Xq1CkVFRW59Sq27dq1c7rSaFxcnL7++usa7SM1NVV33323/u///k/Jycm65ZZb1KJFC1eXChjFOR9AHeDr66tVq1bp448/Vtu2bfXCCy/osssuU05OjqPNb9+qt9lsVa47c7hiy5YtSklJ0fXXX68VK1Zo165deuqpp4ze6begoECS9OqrryozM9PxtXv3bn3xxReS/ntZ8XPtIz093enxX3/9tfbs2aPAwMALqsvHx6fSTTSrOhfmXM9vdU2bNk3ffPONBg8erLVr16pt27ZatmxZzYsGahHCB1BH2Gw2XXnllUpPT9euXbvk7+9/US9Sn3/+uZo1a6annnpK3bt3V6tWrbRv376LrrOsrMzphMmsrCzl5+fr8ssvr9S2UaNGio+P1/fff6+WLVs6fSUlJUmSOnbsqMzMTP3yyy9V9te1a1dlZWVVenzLli0v+KaBDRs21KFDh5wCiCuuS+Ln5+e4vP+vtW7dWo8++qg+/fRTDR8+vNKJwYC34bALUAds3bpVa9asUf/+/RUTE6OtW7fqyJEjVb6gV1erVq20f/9+vfPOO+rRo4dWrlzpkv9x+/n56aGHHtL8+fNVr149Pfjgg/rd735X5fke0ulzNh5++GFFRERo4MCBKi4u1vbt23Xs2DGlpqZq9OjRmjlzpoYOHaqMjAzFxcVp165dio+PV+/evTVlyhTdcMMNatq0qUaMGCEfHx999dVX2r17t5599tkLGkPfvn115MgRzZ49WyNGjNAnn3yijz/++KIPSSUmJmrNmjW68sorFRAQoMDAQE2cOFEjRoxQUlKSfvzxR23btk0333zzRfUDeBrhA6iB7LyCWtlPeHi4Nm7cqHnz5slut6tZs2aaM2eOBg0adME13HTTTXr00Uf14IMPqri4WIMHD9bkyZM1bdq0C96ndPrmZ5MmTdLvf/97HTx4UFdffbVee+21s7a/++67FRwcrOeff14TJ05USEiIOnTo4LgqqL+/vz799FM99thjuv7661VWVqa2bdtqwYIFkqQBAwZoxYoVmj59up577jn5+fmpTZs2uvvuuy94DJdffrleeuklzZw5U88884xuvvlmTZgwQX/+858veJ+SNGfOHKWmpurVV19V48aN9d133+no0aO67bbbdPjwYTVo0EDDhw9X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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "And here are the small-HD-piece and small-enclave pops\n"
     ]
    },
    {
     "data": {
      "image/png": "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AKwhWAAAAGsIFgAAwBqCBQAAsIZgAQAArCFYAAAAawgWAADAGoIFAACwhmABAACsIVgAAABrCBYAAMAaggUAALCGYAEAAKwhWAAAAGsIFgAAwBqCBQAAsIZgAQAArDmvYDFlyhR5eXlp7NixlsoBAADVWYWDxfr16/X666+rU6dONusBAADVWIWCRX5+vhISEvTmm2+qTp06tmsCAADVVIWCxahRozRgwADFxcWds21RUZHy8vJcJgAAcHHycXeD2bNn65tvvtH69evL1T41NVUpKSluFwYAAKoftz6xyM7O1pgxYzRjxgz5+/uXa5ukpCTl5uY6p+zs7AoVCgAALnxufWKxceNGHTx4UF26dHEuO3HihFatWqV//vOfKioqkre3t8s2DodDDofDTrUAAOCC5law6Nevn7Zs2eKy7N5771WbNm00YcKE00IFAACoWdwKFsHBwerQoYPLstq1a6tevXqnLQcAADUPd94EAADWuP2rkD9asWKFhTIAAMDFgE8sAACANQQLAABgDcECAABYQ7AAAADWECwAAIA1BAsAAGANwQIAAFhDsAAAANYQLAAAgDUECwAAYA3BAgAAWEOwAAAA1hAsAACANQQLAABgDcECAABYQ7AAAADWECwAAIA1BAsAAGANwQIAAFhDsAAAANYQLAAAgDUECwAAYA3BAgAAWEOwAAAA1hAsAACANQQLAABgDcECAABYQ7AAAADWECwAAIA1BAsAAGANwQIAAFhDsAAAANYQLAAAgDUECwAAYA3BAgAAWEOwAAAA1hAsAACANQQLAABgDcECAABY41awSEtLU6dOnRQSEqKQkBDFxsZqwYIFnqoNAABUM24FiyZNmmjKlCnauHGjNmzYoD/96U+66aabtHXrVk/VBwAAqhEfdxrfeOONLvNPPfWU0tLStHbtWrVv395qYQAAoPpxK1j83okTJzR37lwVFBQoNja2zHZFRUUqKipyzufl5VW0S6DS7M8p1OGC4qouo9zq1PZT47CAqi4DANwPFlu2bFFsbKyOHTumoKAgpaenq127dmW2T01NVUpKynkVCVSm/TmFint+pQpLTlR1KeUW4OutJY/0JVwAqHJuB4vWrVsrIyNDubm5+uCDD5SYmKiVK1eWGS6SkpI0btw453xeXp6ioqIqXjHgYYcLilVYckIvDb5M0eFBVV3OOe06mK+xczJ0uKCYYAGgyrkdLPz8/BQdHS1J6tq1q9avX6+XX35Zr7/++hnbOxwOORyO86sSqALR4UHq0Di0qssAgGrlvO9jUVpa6nINBQAAqLnc+sQiKSlJ/fv3V9OmTXXkyBHNnDlTK1as0KJFizxVHwAAqEbcChYHDx7U3XffrZ9++kmhoaHq1KmTFi1apGuuucZT9QEAgGrErWDx1ltveaoOAABwEeBZIQAAwBqCBQAAsIZgAQAArCFYAAAAawgWAADAGoIFAACwhmABAACsIVgAAABrCBYAAMAaggUAALCGYAEAAKwhWAAAAGsIFgAAwBqCBQAAsIZgAQAArCFYAAAAawgWAADAGoIFAACwhmABAACsIVgAAABrCBYAAMAaggUAALCGYAEAAKwhWAAAAGsIFgAAwBqCBQAAsIZgAQAArCFYAAAAawgWAADAGoIFAACwhmABAACsIVgAAABrCBYAAMAaggUAALCGYAEAAKwhWAAAAGsIFgAAwBqCBQAAsIZgAQAArCFYAAAAa9wKFqmpqerevbuCg4MVHh6ugQMHaseOHZ6qDQAAVDNuBYuVK1dq1KhRWrt2rRYvXqySkhJde+21Kigo8FR9AACgGvFxp/HChQtd5qdPn67w8HBt3LhRffr0sVoYAACoftwKFn+Um5srSapbt26ZbYqKilRUVOScz8vLO58uPW5/TqEOFxRXSd+++fvlfey3crc/4V9XQQ2bq3FYgAerAgBU5XuDu+rU9qvS94UKB4vS0lKNHTtWvXr1UocOHcpsl5qaqpSUlIp2U6n25xQq7vmVKiw5Uel9R+pXLXGMV6BX0bkb/5+jxqEbSl/Qe4/cSrgAAA+pyveGigjw9daSR/pW2ftChYPFqFGjlJmZqS+//PKs7ZKSkjRu3DjnfF5enqKioirarUcdLihWYckJvTT4MkWHB1Vq3/6/blFgepGyr35ZRWHR52zvyNmlqOVjFHA8R4cLigkWAOAhVfne4K5dB/M1dk5Glb4vVChYjB49Wp9++qlWrVqlJk2anLWtw+GQw+GoUHFVJTo8SB0ah1Zup14nT9aolpdJkZedu/2PQdJyj1YEAPidKnlvqIbcChbGGD344INKT0/XihUr1Lx5c0/VBQAAqiG3gsWoUaM0c+ZMffTRRwoODtaBAwckSaGhoQoI4KN4AABqOrfuY5GWlqbc3FxdddVVioiIcE5z5szxVH0AAKAacfurEAAAgLLwrBAAAGANwQIAAFhDsAAAANYQLAAAgDUECwAAYA3BAgAAWEOwAAAA1hAsAACANQQLAABgDcECAABYQ7AAAADWECwAAIA1BAsAAGANwQIAAFhDsAAAANYQLAAAgDUECwAAYA3BAgAAWEOwAAAA1hAsAACANQQLAABgDcECAABYQ7AAAADWECwAAIA1BAsAAGANwQIAAFhDsAAAANYQLAAAgDUECwAAYA3BAgAAWEOwAAAA1hAsAACANQQLAABgDcECAABYQ7AAAADWECwAAIA1BAsAAGANwQIAAFhDsAAAANa4HSxWrVqlG2+8UZGRkfLy8tK8efM8UBYAAKiO3A4WBQUFiomJ0auvvuqJegAAQDXm4+4G/fv3V//+/T1RCwAAqObcDhbuKioqUlFRkXM+Ly/P011eOHKypaOHytf21+8unFokKbCeFBZVc+oByrA/p1CHC4qruoxyqVPbT43DAqq6DNRwHg8WqampSklJ8XQ3F56cbOnVHlLJ0fJv4xt48g30Qqll1NeeeTO/0OoByrA/p1Bxz69UYcmJqi6lXAJ8vbXkkb6EC1QpjweLpKQkjRs3zjmfl5enqKga8OZw9NDJN85b3pTqtyrfNp76V7m7tfz6nfThsJPb1YR6gDIcLihWYckJvTT4MkWHB1V1OWe162C+xs7J0OGCYoIFqpTHg4XD4ZDD4fB0Nxeu+q2kyMuquoqTLqRapAuvHqAM0eFB6tA4tKrLAKoF7mMBAACscfsTi/z8fO3atcs5n5WVpYyMDNWtW1dNmza1WhwAAKhe3A4WGzZs0NVXX+2cP3X9RGJioqZPn26tMAAAUP24HSyuuuoqGWM8UQsAAKjmuMYCAABYQ7AAAADWECwAAIA1BAsAAGANwQIAAFhDsAAAANYQLAAAgDUECwAAYA3BAgAAWEOwAAAA1hAsAACANQQLAABgDcECAABYQ7AAAADWECwAAIA1BAsAAGANwQIAAFhDsAAAANYQLAAAgDUECwAAYA3BAgAAWEOwAAAA1hAsAACANQQLAABgDcECAABYQ7AAAADWECwAAIA1BAsAAGANwQIAAFhDsAAAANYQLAAAgDUECwAAYA3BAgAAWEOwAAAA1hAsAACANQQLAABgDcECAABYQ7AAAADWECwAAIA1FQoWr776qi655BL5+/urZ8+e+vrrr23XBQAAqiG3g8WcOXM0btw4JScn65tvvlFMTIzi4+N18OBBT9QHAACqEbeDxQsvvKBhw4bp3nvvVbt27fTaa68pMDBQb7/9tifqAwAA1YiPO42Li4u1ceNGJSUlOZfVqlVLcXFx+uqrr864TVFRkYqKipzzubm5kqS8vLyK1Fu2I/lSkTn53/Ls+1T7vRkn/5ZU8muBWhVvU8leH+Xl1z6/eg7tcq8ed/1f/VHFe7R303KV7A0os6kjd4+aFBntzvpZRXnZ59y149DPurTI6IeMr1SU9bPNqs+rnvK2P197filQadFR5R/JU16el8f7O1/5R/JUWnRU3+75SflHPHCu1WDV6VzgPPCc6ngeeKLWU+/bxpizNzRu2L9/v5Fk1qxZ47J8/PjxpkePHmfcJjk52UhiYmJiYmJiugim7Ozss2YFtz6xqIikpCSNGzfOOV9aWqrffvtN9erVk5eXvTSVl5enqKgoZWdnKyQkxNp+qyvG43SMiSvGwxXj4YrxOF1NHxNjjI4cOaLIyMiztnMrWNSvX1/e3t76+WfXj8d//vlnNWrU6IzbOBwOORwOl2VhYWHudOuWkJCQGvk/vCyMx+kYE1eMhyvGwxXjcbqaPCahoaHnbOPWxZt+fn7q2rWrli5d6lxWWlqqpUuXKjY21v0KAQDARcXtr0LGjRunxMREdevWTT169NBLL72kgoIC3XvvvZ6oDwAAVCNuB4vBgwfrl19+0cSJE3XgwAFddtllWrhwoRo2bOiJ+srN4XAoOTn5tK9dairG43SMiSvGwxXj4YrxOB1jUj5e5py/GwEAACgfnhUCAACsIVgAAABrCBYAAMAaggUAALDmogkWF8Oj3FetWqUbb7xRkZGR8vLy0rx581zWG2M0ceJERUREKCAgQHFxcdq5c6dLm99++00JCQkKCQlRWFiYhg4dqvz8fJc23377rXr37i1/f39FRUXpmWeeOa2WuXPnqk2bNvL391fHjh312WefWT/ec0lNTVX37t0VHBys8PBwDRw4UDt27HBpc+zYMY0aNUr16tVTUFCQbr311tNu4LZv3z4NGDBAgYGBCg8P1/jx43X8+HGXNitWrFCXLl3kcDgUHR2t6dOnn1ZPVZ9jaWlp6tSpk/PmPLGxsVqwYIFzfU0aizOZMmWKvLy8NHbsWOeymjYmkyZNkpeXl8vUpk0b5/qaNh6StH//ft15552qV6+eAgIC1LFjR23YsMG5vqa9rlYKd54VcqGaPXu28fPzM2+//bbZunWrGTZsmAkLCzM///xzVZfmls8++8w8/vjj5sMPPzSSTHp6usv6KVOmmNDQUDNv3jyzefNm8+c//9k0b97cFBYWOttcd911JiYmxqxdu9Z88cUXJjo62gwZMsS5Pjc31zRs2NAkJCSYzMxMM2vWLBMQEGBef/11Z5vVq1cbb29v88wzz5ht27aZ//7v/za+vr5my5YtHh+D34uPjzfTpk0zmZmZJiMjw1x//fWmadOmJj8/39lm+PDhJioqyixdutRs2LDBXH755eaKK65wrj9+/Ljp0KGDiYuLM5s2bTKfffaZqV+/vklKSnK22bNnjwkMDDTjxo0z27ZtM6+88orx9vY2CxcudLa5EM6xjz/+2MyfP9989913ZseOHeZvf/ub8fX1NZmZmTVuLP7o66+/Npdcconp1KmTGTNmjHN5TRuT5ORk0759e/PTTz85p19++cW5vqaNx2+//WaaNWtm7rnnHrNu3TqzZ88es2jRIrNr1y5nm5r2uloZLopg0aNHDzNq1Cjn/IkTJ0xkZKRJTU2twqrOzx+DRWlpqWnUqJF59tlnnctycnKMw+Ews2bNMsYYs23bNiPJrF+/3tlmwYIFxsvLy+zfv98YY8y//vUvU6dOHVNUVORsM2HCBNO6dWvn/O23324GDBjgUk/Pnj3NX/7yF6vH6K6DBw8aSWblypXGmJPH7+vra+bOnetss337diPJfPXVV8aYk2GtVq1a5sCBA842aWlpJiQkxDkGjz32mGnfvr1LX4MHDzbx8fHO+Qv1HKtTp47597//XaPH4siRI6Zly5Zm8eLFpm/fvs5gURPHJDk52cTExJxxXU0cjwkTJpgrr7yyzPW8rnpGtf8q5NSj3OPi4pzLzvUo9+ooKytLBw4ccDnO0NBQ9ezZ03mcX331lcLCwtStWzdnm7i4ONWqVUvr1q1ztunTp4/8/PycbeLj47Vjxw4dPnzY2eb3/ZxqU9XjmZubK0mqW7euJGnjxo0qKSlxqbVNmzZq2rSpy5h07NjR5QZu8fHxysvL09atW51tzna8F+I5duLECc2ePVsFBQWKjY2t0WMxatQoDRgw4LS6a+qY7Ny5U5GRkWrRooUSEhK0b98+STVzPD7++GN169ZNgwYNUnh4uDp37qw333zTuZ7XVc+o9sHi119/1YkTJ06782fDhg114MCBKqrKvlPHcrbjPHDggMLDw13W+/j4qG7dui5tzrSP3/dRVpuqHM/S0lKNHTtWvXr1UocOHSSdrNPPz++0h9r9cUwqerx5eXkqLCy8oM6xLVu2KCgoSA6HQ8OHD1d6erratWtXI8dCkmbPnq1vvvlGqampp62riWPSs2dPTZ8+XQsXLlRaWpqysrLUu3dvHTlypEaOx549e5SWlqaWLVtq0aJFGjFihB566CG98847knhd9RSPPzYdsGHUqFHKzMzUl19+WdWlVKnWrVsrIyNDubm5+uCDD5SYmKiVK1dWdVlVIjs7W2PGjNHixYvl7+9f1eVcEPr37+/8u1OnTurZs6eaNWum999/XwEBAVVYWdUoLS1Vt27dNHnyZElS586dlZmZqddee02JiYlVXN3Fq9p/YlGRR7lXR6eO5WzH2ahRIx08eNBl/fHjx/Xbb7+5tDnTPn7fR1ltqmo8R48erU8//VTLly9XkyZNnMsbNWqk4uJi5eTkuLT/45hU9HhDQkIUEBBwQZ1jfn5+io6OVteuXZWamqqYmBi9/PLLNXIsNm7cqIMHD6pLly7y8fGRj4+PVq5cqalTp8rHx0cNGzascWPyR2FhYWrVqpV27dpVI8+RiIgItWvXzmVZ27ZtnV8P1eTXVU+q9sGipjzKvXnz5mrUqJHLcebl5WndunXO44yNjVVOTo42btzobLNs2TKVlpaqZ8+ezjarVq1SSUmJs83ixYvVunVr1alTx9nm9/2calPZ42mM0ejRo5Wenq5ly5apefPmLuu7du0qX19fl1p37Nihffv2uYzJli1bXF4YFi9erJCQEOcLzrmO90I+x0pLS1VUVFQjx6Jfv37asmWLMjIynFO3bt2UkJDg/Lumjckf5efna/fu3YqIiKiR50ivXr1O+4n6d999p2bNmkmqma+rlaKqrx61Yfbs2cbhcJjp06ebbdu2mQceeMCEhYW5XNlcHRw5csRs2rTJbNq0yUgyL7zwgtm0aZP5/vvvjTEnfxYVFhZmPvroI/Ptt9+am2666Yw/i+rcubNZt26d+fLLL03Lli1dfhaVk5NjGjZsaO666y6TmZlpZs+ebQIDA0/7WZSPj4957rnnzPbt201ycnKV/CxqxIgRJjQ01KxYscLl53NHjx51thk+fLhp2rSpWbZsmdmwYYOJjY01sbGxzvWnfj537bXXmoyMDLNw4ULToEGDM/58bvz48Wb79u3m1VdfPePP56r6HPvrX/9qVq5cabKyssy3335r/vrXvxovLy/z+eef17ixKMvvfxViTM0bk0ceecSsWLHCZGVlmdWrV5u4uDhTv359c/DgQWNMzRuPr7/+2vj4+JinnnrK7Ny508yYMcMEBgaa//znP842Ne11tTJcFMHCGGNeeeUV07RpU+Pn52d69Ohh1q5dW9UluW358uVG0mlTYmKiMebkT6OeeOIJ07BhQ+NwOEy/fv3Mjh07XPZx6NAhM2TIEBMUFGRCQkLMvffea44cOeLSZvPmzebKK680DofDNG7c2EyZMuW0Wt5//33TqlUr4+fnZ9q3b2/mz5/vseMuy5nGQpKZNm2as01hYaEZOXKkqVOnjgkMDDQ333yz+emnn1z2s3fvXtO/f38TEBBg6tevbx555BFTUlLi0mb58uXmsssuM35+fqZFixYufZxS1efYfffdZ5o1a2b8/PxMgwYNTL9+/ZyhwpiaNRZl+WOwqGljMnjwYBMREWH8/PxM48aNzeDBg13u2VDTxsMYYz755BPToUMH43A4TJs2bcwbb7zhsr6mva5WBh6bDgAArKn211gAAIALB8ECAABYQ7AAAADWECwAAIA1BAsAAGANwQIAAFhDsAAAANYQLAAAgDUECwAAYA3BAgAAWEOwAAAA1hAsAACANf8LcNc/JS/XWJIAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#THIS is the FINDSTILLBROKEN code\n",
    "print(\"quick classification: who has contiguity problems?\")\n",
    "nUnbroken, nNoEnclave, smallPieceLists, enclaveLists, sPgenerator, eLgenerator = 0., 0., list(), list(), list(), list()\n",
    "smallPieceLengths, enclaveLengths = list(), list()\n",
    "doubleTroubleList = list()\n",
    "startTime = time.time()\n",
    "for i,t in enumerate(popHDlist):\n",
    "    if i%1000 == 0:\n",
    "        print(\"working on HD\",t,\"time is now\",int(time.time() - startTime) )\n",
    "    unbroken, noEnclave,smallPieceList,enclaveList = enclaveCheck(HDunitList[t], unitNbrs)\n",
    "    if unbroken:\n",
    "        nUnbroken +=1\n",
    "    if noEnclave:\n",
    "        nNoEnclave +=1\n",
    "    if not unbroken:\n",
    "        smallPieceLists.append(smallPieceList)\n",
    "        smallPieceLengths.append(len(smallPieceList))\n",
    "        sPgenerator.append(t)\n",
    "    if not noEnclave and unbroken:   #district is contiguous but contains 1+ enclave\n",
    "        enclaveLists.append(enclaveList)\n",
    "        enclaveLengths.append(len(enclaveList))\n",
    "        eLgenerator.append(t)\n",
    "    if not noEnclave and not unbroken:  #extremely discontig (\"broken\") HDs can appear to have enclaves;\n",
    "        doubleTroubleList.append(t)\n",
    "print(\"out of\",len(popHDlist),\"total HDs, there were\",nUnbroken,\"contiguous and\",nNoEnclave,\"complement-contiguous HDs\")\n",
    "print(len(doubleTroubleList),\"HDs had both discontiguity problems, while enclave-only =\",len(eLgenerator),\n",
    "      \"and discontig only=\",len(sPgenerator)-len(doubleTroubleList) )\n",
    "\n",
    "print(\"here are the histograms of the small piece and enclave list lengths, total no =\",\n",
    "      len(smallPieceLists),len(enclaveLists) )\n",
    "plt.hist([s for s in smallPieceLengths],label=\"small piece l units\",histtype='step',\n",
    "         cumulative=True,bins=[0,1,2,3,4,5,6,8,10,12,15,20,25,30,35,40,45,50,60,80,120,200])\n",
    "plt.hist([e for e in enclaveLengths],label=\"enclave l units\",histtype='step',\n",
    "         cumulative=True,bins=[0,1,2,3,4,5,6,8,10,12,15,20,25,30,35,40,45,50,60,80,120,200])\n",
    "plt.legend()\n",
    "plt.show()\n",
    "print(\"And here are the small-HD-piece and small-enclave pops\")\n",
    "plt.hist([sum(unitPop[u] for u in s) for s in smallPieceLists],label=\"small piece 1 pop\",histtype='step')\n",
    "plt.hist([sum(unitPop[u] for u in e) for e in enclaveLists],label=\"enclave 1 pop\",histtype='step')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "id": "463db75a-694e-4c7d-9693-e10f3b4d65db",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Before addressing enclaves, let's triage the discontinuous HDs\n",
      "Now work on dropping smallish disconnected pieces that would keep us above 113013 district pop vs 118962 target\n",
      "we'll also trim any HD with total islands' pop <= 2379\n",
      "working on HD 1191\n",
      "Out of 8 discontig HDs 8 had discontig HDs.\n",
      "Of these, 0 won't be under 113013 after all minor discontigys were shed, while 8 would be too underpopped if we trimmed the discontig pieces\n",
      "here is adjusted pop by original pop for those we trimmed and those we didn't (x)\n"
     ]
    },
    {
     "data": {
      "image/png": "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SCdPnrRrUlJS/PaTlpam/Pz8Jo8ze/Zsud1ue4mPj7/GswQAAC1dQILQypUrVVtbq+joaLlcLmVmZio7O1sJCQmN1h84cEBvvPGGMjMz7W1lZWWKjY31q6tfLysru2xNfXtjZsyYIcuy7KW0tPSazhEAALR87QNx0JkzZ6qiokIbNmxQ586dlZOTo4yMDG3ZskUDBgzwqz1y5IhGjBih73//+3r66ae/8b65XC65XK5v/DgAACDwbnoQOnjwoN58800VFhaqf//+kqTExERt2bJFCxcu1KJFi+zao0eP6oEHHtCQIUP8JkFLksfj0fHjx/221a97PJ7L1tS3AwAAZ7vpX42dOXPGd+Bg/0O3a9dOdXV19vqRI0c0fPhwDR48WFlZWQ3qk5OTlZeXp9raWntbbm6u+vTpo8jISLtm48aNfo/Lzc1VcnLyDT0nAADQOjU7CFVVVcnr9dr3ByouLpbX61VJSYkkqby8XF6vV/v27ZMkFRUVyev12vNy+vbtq4SEBGVmZmr79u06ePCgFixYoNzcXI0aNUrSxRDUo0cPvfrqq/ryyy9VVlbmN7fnscceU0hIiCZNmqS9e/dqxYoVev311zV16lS75tlnn9WHH36oBQsW6IsvvtDLL7+sHTt26Mc//vE1DRYAAGhjmns52ubNm42kBsvEiRONMcZkZWU12j5r1ix7H/v37zdjxowxMTExJiwszAwcONDvcvqm9vH17u7atcsMHTrUuFwu061bNzNnzpwG/V25cqW58847TUhIiOnfv79Zt25ds873ai+/AwAALcfVvn8HGWPMzQ5frUllZaXcbrcsy1JERESguwMAAK7C1b5/81tjAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADAsQhCAADA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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Now, reclassify after the trimming\n",
      "There are 8 HDs still with both discontinuity problems\n",
      "Additionally, 0 of the originally discontig HDs are now contig but still have an enclave\n"
     ]
    }
   ],
   "source": [
    "print(\"Before addressing enclaves, let's triage the discontinuous HDs\")\n",
    "#this is the CANTRIM code####\n",
    "\n",
    "#for t in sPgenerator:\n",
    "#    isContig, smallP = isContiguous(filledHDvtdList[t],unitNbrs)\n",
    "#    if isContig:\n",
    "#        print(\"oops!\",t)\n",
    "maxNudgeDownPop = int(0.02 * aDP)\n",
    "minPostFixPop = int(0.95 * aDP)\n",
    "print(\"Now work on dropping smallish disconnected pieces that would keep us above\",minPostFixPop,\"district pop vs\",int(aDP),\"target\")\n",
    "print(\"we'll also trim any HD with total islands' pop <=\",maxNudgeDownPop)\n",
    "nOrigIslands = [0 for t in range(nHDs)]\n",
    "totalIslandPop = [0. for t in range(nHDs)]\n",
    "tryToTrim, canTrim, cantTrim = list(), list(), list()\n",
    "for jj, t in enumerate(sPgenerator):\n",
    "    if jj%100 == 0:\n",
    "        print(\"working on HD\",t)\n",
    "    currList, shedList, shedPop = HDunitList[t].copy(), list(),  0.\n",
    "    done,newList = isContiguous(currList,unitNbrs)\n",
    "    if not done:\n",
    "        tryToTrim.append(t)\n",
    "        while not done:\n",
    "            shedList += newList\n",
    "            shedPop += np.sum( [unitPop[u] for u in newList] )\n",
    "            currList = list (  set(currList).difference(set(newList ))  )\n",
    "            done, newList = isContiguous(currList, unitNbrs)\n",
    "            nOrigIslands[t] +=1\n",
    "            \n",
    "        totalIslandPop[t] = shedPop            \n",
    "        if shedPop <= maxNudgeDownPop or HDvPop[t] - shedPop >= minPostFixPop:\n",
    "            canTrim.append(t)\n",
    "            HDvPop[t] -= shedPop\n",
    "            HDunitList[t] = list (set(HDunitList[t]).difference(set(shedList)) )\n",
    "        else:\n",
    "            cantTrim.append(t)\n",
    "print(\"Out of\",len(sPgenerator),\"discontig HDs\",len(tryToTrim),\"had discontig HDs.\")\n",
    "print(\"Of these,\",len(canTrim),\"won't be under\",minPostFixPop,\"after all minor discontigys were shed, while\",\n",
    "      len(cantTrim),\"would be too underpopped if we trimmed the discontig pieces\")\n",
    "plt.scatter([HDvPop[t] + totalIslandPop[t] for t in canTrim],[HDvPop[t] for t in canTrim])\n",
    "plt.scatter([HDvPop[t]                     for t in cantTrim],[HDvPop[t] for t in cantTrim],marker=\"x\")\n",
    "print(\"here is adjusted pop by original pop for those we trimmed and those we didn't (x)\")\n",
    "plt.plot([0.9*aDP, 1.1*aDP],[aDP, aDP], ls=\"--\")\n",
    "plt.show()\n",
    "\n",
    "print(\"Now, reclassify after the trimming\")\n",
    "badDiscoList, stillHasEnclave = list(), list()\n",
    "for t in sPgenerator:    \n",
    "    unbroken, noEnclave, __, ____ = enclaveCheck(HDunitList[t], unitNbrs)\n",
    "    if not unbroken:\n",
    "        badDiscoList.append(t)  #will do a major triage on these later\n",
    "    if unbroken and not noEnclave:\n",
    "        stillHasEnclave.append(t)\n",
    "print(\"There are\",len(badDiscoList),\"HDs still with both discontinuity problems\")\n",
    "print(\"Additionally,\",len(stillHasEnclave),\"of the originally discontig HDs are now contig but still have an enclave\")\n",
    "eLgenerator += stillHasEnclave"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "id": "2e54bac4-c327-473d-bbb4-257486bddd20",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "And now, the major disco'd HDs (< 0.75 aDP in HDcP-contig portion and/or enclaves).  Redraw fully using HDswell\n",
      "Assuming we have run the previous canSwell block.  This block repeats the code, but starting from the home unit\n",
      "This takes 1 - 1000 sec per HD :-( The total number of HDs to fix is 8\n",
      "swell-generating HD 1191 our 1 th HD we must regrow out of 8 0 sec elapsed\n"
     ]
    }
   ],
   "source": [
    "#THIS IS THE MUSTSPAWN code block\n",
    "print(\"And now, the major disco'd HDs (< 0.75 aDP in HDcP-contig portion and/or enclaves).  Redraw fully using HDswell\")\n",
    "print(\"Assuming we have run the previous canSwell block.  This block repeats the code, but starting from the home unit\")\n",
    "print(\"This takes 1 - 1000 sec per HD :-( The total number of HDs to fix is\",len(badDiscoList))\n",
    "avgDiam = MAP.area**0.5 / float(nDistricts)\n",
    "startTime = time.time()\n",
    "for i,t in enumerate(badDiscoList):\n",
    "    if i%10 == 0:\n",
    "        print(\"swell-generating HD\",t,\"our\",i+1,\"th HD we must regrow out of\",len(badDiscoList),int(time.time()-startTime),\"sec elapsed\" )\n",
    "    notInCluster = True\n",
    "    for jj, geo in enumerate(CCBgeom):  #swell in-corner HDs from the corner cluster\n",
    "        if geo.contains(hdCP[t]):\n",
    "            starterU = allUnits.index(jj+0.25)\n",
    "            notInCluster = False\n",
    "    if notInCluster:\n",
    "        distList = [hdCP[t].distance(unitCP[u]) for u in HDunitList[t] ]\n",
    "        starterU = HDunitList[t][distList.index(np.min(distList))]  #starter = unit with centroid closest to the hd center\n",
    "    contigUs = [starterU]  #we used getContigFromStarter(starterU, HDvtdList[t], unitNbrs) in above code block\n",
    "    contigPop = np.sum( [ unitPop[u] for u in contigUs ] )\n",
    "    gap = aDP - contigPop\n",
    "    origGap = gap\n",
    "    currList, addedList = contigUs.copy(), list()\n",
    "    adjoiners = getAdjoiners(currList, unitNbrs)\n",
    "    nearHDlist = [uu for uu in adjoiners]  #bias toward underused, close to HD (and its center)\n",
    "    nearHDscore = [ (0.2*(unitUse[uu] - 1.) ) + 0.5*(unitCP[uu].distance(HDpoly[t]) + \n",
    "        unitCP[uu].distance(hdCP[t])  )  / HDdiam[t] for uu in adjoiners ]\n",
    "    stillGoing = True\n",
    "    \n",
    "    while gap > maxGap and len(nearHDlist) > 0 and stillGoing:   #add the lowest-scoring neighboring underused unit until we've roughly squared the HDpop\n",
    "        idx, i, notYetPicked = np.argsort(nearHDscore), 0, True\n",
    "        while i < len(nearHDscore) and notYetPicked:        \n",
    "            listNo = idx[i]   #nearHDscore.index(np.min(nearHDscore))\n",
    "            unitNoToAdd = nearHDlist[listNo]  #add this unit ...\n",
    "            canAdd  = wontEnclave(unitNoToAdd, currList, unitNbrs, borderUnits)\n",
    "            if canAdd:\n",
    "                notYetPicked = False\n",
    "            else:\n",
    "                i +=1\n",
    "        if notYetPicked:\n",
    "            stillGoing = False  #can't add any more units without creating an enclave\n",
    "        else: #we selected the best unit to add legally\n",
    "            gap -= unitPop[unitNoToAdd]\n",
    "            addedList.append(unitNoToAdd)\n",
    "            currList.append( unitNoToAdd)\n",
    "            for uu in unitNbrs[unitNoToAdd]:             # ... and add its nonHD neighbors to future candidates\n",
    "                if uu not in currList and uu not in nearHDlist and unitPop[uu] < gap + maxGap:  \n",
    "                    nearHDlist.append(uu)\n",
    "                    nearHDscore.append((0.1*(unitUse[uu] - 1.) ) + 0.5*(unitCP[uu].distance(HDpoly[t]) + \n",
    "                                                                        unitCP[uu].distance(hdCP[t])  )  / HDdiam[t] )\n",
    "            del nearHDscore[nearHDlist.index(unitNoToAdd)]        \n",
    "            del nearHDlist[ nearHDlist.index(unitNoToAdd) ]\n",
    "            for i, uu in enumerate(nearHDlist.copy()):\n",
    "                if unitPop[uu] > gap + maxGap:   #with the added pop from another unit, this unit is now too big to add\n",
    "                    del nearHDscore[nearHDlist.index(uu)]\n",
    "                    del nearHDlist[ nearHDlist.index(uu)]\n",
    "    for u in addedList:\n",
    "        unitUse[u] += HDweight[t] #                           * nDistricts\n",
    "    for u in list( set(HDunitList[t]).difference(set(contigUs)) ):\n",
    "        unitUse[u] -= HDweight[t] #                 * nDistricts       \n",
    "    HDunitList[t] = contigUs + addedList\n",
    "    HDvPop[t]    = np.sum( [unitPop[u] for u in HDunitList[t] ] )\n",
    "    HDnAddedUnits[t] = len(addedList)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "id": "b78199da-ac7c-4cfb-ac0b-26363a8a8c56",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "prev avg use and its sd are 1.00399 0.09144\n",
      "defining and displaying current unit use after most recent manipulations; compare to original farther above.\n",
      "current avg use and its sd are 1.004 0.09374\n"
     ]
    },
    {
     "data": {
      "image/png": "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Xq+Ki4slSXPmzFFqaqrcbrckacGCBSooKNDq1as1ffp0VVdXa/fu3Vq/fr0kKSIiQgsXLtRTTz2liRMn+i8FT0lJ0cyZM0N3pAAAYEiwHW6Kiop05MgRrVixQh6PR1lZWaqtrfUvCD506FDA6aWpU6eqqqpKy5Yt09KlSzVx4kRt2rTJf48bSfrhD38or9er733vezp+/LimTZum2trafr/HzYWKjo5WWVnZWV+VDTXMwxnMxSnMwynMwxnMxSnMwynhmgfb97kBAAAYyEK7ggcAAKCfEW4AAIBRCDcAAMAohBsAAGAUws0FqqioUHp6umJiYpSXl6ddu3adt//x48c1b948XX755YqOjtY111yjLVu29FG14WNnHm677TZFRESctU2fPr0PKw4fu78T5eXluvbaaxUbG6u0tDT94Ac/0BdffNFH1YaPnXno7u7Wj3/8Y1199dWKiYlRZmamamtr+7Da8NixY4e++c1vKiUlRREREf5n551PfX29brrpJkVHR2vChAnasGFD2OsMN7vz8Nlnn+nBBx/UNddco8jISC1cuLBP6uwLdufitdde0x133KHLLrtM8fHxys/P169//eu+KTaM7M7DO++8o1tuuUVjxoxRbGysJk2apGeffdb2+xJuLkBNTY1cLpfKysrU1NSkzMxMFRYWqrW1tdf+XV1duuOOO/Txxx/r3//933XgwAG98MILSk1N7ePKQ8vuPLz22mv67LPP/Nu+ffsUFRWl++67r48rDz27c1FVVaUlS5aorKxM77//vl588UXV1NRo6dKlfVx5aNmdh2XLlumXv/yl1q5dq/379+vRRx/VPffcoz179vRx5aHl9XqVmZmpioqKC+r/xz/+UdOnT9ftt9+uvXv3auHChXr44YcH/YeZ3Xno7OzUZZddpmXLlikzMzPM1fUtu3OxY8cO3XHHHdqyZYsaGxt1++2365vf/OaQ+7sRFxenkpIS7dixQ++//76WLVumZcuW+e+Nd8EsfKXc3Fxr3rx5/p97enqslJQUy+1299r/+eeft8aPH291dXX1VYl9wu48/KVnn33WGjlypHXixIlwldhn7M7FvHnzrK9//esBbS6Xy7rlllvCWme42Z2Hyy+/3Fq3bl1A27e//W3roYceCmudfUmS9frrr5+3zw9/+EPr+uuvD2grKiqyCgsLw1hZ37qQefj/CgoKrAULFoStnv5kdy5Omzx5svXkk0+GvqB+Euw83HPPPdZ3vvMdW/tw5uYrdHV1qbGxUU6n098WGRkpp9OphoaGXvd54403lJ+fr3nz5ikpKUkZGRn62c9+pp6enr4qO+SCmYe/9OKLL+qBBx5QXFxcuMrsE8HMxdSpU9XY2Oj/yuajjz7Sli1bdNddd/VJzeEQzDx0dnaedXPO2NhYvfPOO2GtdaBpaGgImDdJKiwsvOC/SzCfz+fT559/HvIHSg42e/bs0c6dO1VQUGBrv0H5VPC+dPToUfX09PjvwHxaUlKSPvjgg173+eijj/T222/roYce0pYtW3Tw4EE99thj6u7uVllZWV+UHXLBzMP/t2vXLu3bt08vvvhiuErsM8HMxYMPPqijR49q2rRpsixLX375pR599NFB/bVUMPNQWFioNWvW6NZbb9XVV1+turo6vfbaa4M6+AfD4/H0Om/t7e3q6OhQbGxsP1WGgWLVqlU6ceKE7r///v4upV9cccUVOnLkiL788ks98cQTevjhh23tz5mbMPD5fEpMTNT69euVnZ2toqIiPf7446qsrOzv0vrNiy++qBtuuEG5ubn9XUq/qK+v189+9jP94he/UFNTk1577TW9+eab+slPftLfpfWp5557ThMnTtSkSZPkcDhUUlKi4uLikD8RGBjMqqqq9OSTT+rf/u3flJiY2N/l9Ivf/va32r17tyorK1VeXq5XXnnF1v6cufkKY8eOVVRUlFpaWgLaW1palJyc3Os+l19+uYYPH66oqCh/23XXXSePx6Ouri45HI6w1hwOwczDaV6vV9XV1frxj38czhL7TDBzsXz5cs2ePdv/fx833HCD/3lqjz/++KD8cA9mHi677DJt2rRJX3zxhf70pz8pJSVFS5Ys0fjx4/ui5AEjOTm513mLj4/nrM0QV11drYcfflgbN24866vLoWTcuHGSTv1b2dLSoieeeEKzZs264P0H37+ofczhcCg7O1t1dXX+Np/Pp7q6OuXn5/e6zy233KKDBw/K5/P52z788ENdfvnlgzLYSMHNw2kbN25UZ2envvOd74S7zD4RzFycPHnyrABzOvxag/TxbhfzOxETE6PU1FR9+eWXevXVV/Wtb30r3OUOKPn5+QHzJklbt279ynmD2V555RUVFxfrlVdeMeaWGaHg8/nU2dlpbyfby5aHoOrqais6OtrasGGDtX//fut73/ueNWrUKMvj8ViWZVmzZ8+2lixZ4u9/6NAha+TIkVZJSYl14MABa/PmzVZiYqL11FNP9dchhITdeTht2rRpVlFRUV+XG1Z256KsrMwaOXKk9corr1gfffSR9dZbb1lXX321df/99/fXIYSE3Xl49913rVdffdX6wx/+YO3YscP6+te/bo0bN846duxYPx1BaHz++efWnj17rD179liSrDVr1lh79uyxPvnkE8uyLGvJkiXW7Nmz/f0/+ugj65JLLrEWL15svf/++1ZFRYUVFRVl1dbW9tchhITdebAsy98/OzvbevDBB609e/ZY7733Xn+UH1J25+Lll1+2hg0bZlVUVFifffaZfzt+/Hh/HUJI2J2HdevWWW+88Yb14YcfWh9++KH1j//4j9bIkSOtxx9/3Nb7Em4u0Nq1a60rr7zScjgcVm5urvXuu+/6XysoKLDmzp0b0H/nzp1WXl6eFR0dbY0fP9766U9/an355Zd9XHXo2Z2HDz74wJJkvfXWW31cafjZmYvu7m7riSeesK6++morJibGSktLsx577LFB/6FuWfbmob6+3rruuuus6Ohoa8yYMdbs2bOt5ubmfqg6tH7zm99Yks7aTh/73LlzrYKCgrP2ycrKshwOhzV+/HjrV7/6VZ/XHWrBzENv/a+66qo+rz3U7M5FQUHBefsPVnbn4ec//7l1/fXXW5dccokVHx9v3XjjjdYvfvELq6enx9b7RljWID0nDgAA0AvW3AAAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMArhBgAAGIVwAwAAjEK4AQAARiHcAAAAoxBuAACAUQg3AADAKIQbAABglP8F1+DvJudNPF4AAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(\"prev avg use and its sd are\",r5(currAvg),r5(currSD) )\n",
    "print(\"defining and displaying current unit use after most recent manipulations; compare to original farther above.\")\n",
    "unitUse = [0. for u in range(nUnits)]\n",
    "for t in range(nHDs):\n",
    "    for u in HDunitList[t]:\n",
    "        unitUse[u] += HDweight[t] # * nDistricts\n",
    "activeUnitDistro, activeUnitWeights = list(), list()\n",
    "for u in range(nUnits):\n",
    "    if unitUse[u] > 0.1:\n",
    "        activeUnitDistro.append(unitUse[u])\n",
    "        activeUnitWeights.append(unitPop[u]/statePop)\n",
    "plt.hist(activeUnitDistro, weights=activeUnitWeights, bins = 20, histtype = \"step\")\n",
    "#plt.show()\n",
    "currAvg, currSD = getWeightedAvgAndSD(activeUnitDistro, activeUnitWeights)\n",
    "print(\"current avg use and its sd are\",r5(currAvg),r5(currSD) )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "id": "a2242181-3a07-40b7-ae56-bbe47bd2dc79",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(not-so-)final check -- any more disco's ?\n",
      "working on HD 1190 time is now 0 sec\n",
      "working on HD 1691 time is now 0 sec\n",
      "working on HD 7187 time is now 1 sec\n",
      "out of 1446 total HDs, there were 1434 0 12 0 HDs that were clean, discontig only, enclave-only, both problems after triage\n",
      "this took 2 seconds with maxLoop =  5\n"
     ]
    }
   ],
   "source": [
    "print(\"(not-so-)final check -- any more disco's ?\")\n",
    "maxLOOP = 5  #can increase to avoid false enclave detection\n",
    "discontigOnly, enclaveOnly, bothProblems, cleanList = list(), list(), list(), list()\n",
    "startTime = time.time()\n",
    "for i,t in enumerate(popHDlist):\n",
    "    if i%500 == 0:\n",
    "        print(\"working on HD\",t,\"time is now\",int(time.time() - startTime),\"sec\")\n",
    "    unbroken, noEnclave,smallPieceList,enclaveList = enclaveCheck(HDunitList[t], unitNbrs, maxLOOP)\n",
    "    if not noEnclave:\n",
    "        noEnclave, enclaveList = isContiguous(list({u for u in range(nUnits)}.difference(set(HDunitList[t]))),unitNbrs)\n",
    "    if unbroken and noEnclave:\n",
    "        cleanList.append(t)\n",
    "    if unbroken and not noEnclave:\n",
    "        enclaveOnly.append(t)\n",
    "    if not unbroken and noEnclave:\n",
    "        discontigOnly.append(t)\n",
    "    if not unbroken and not noEnclave:\n",
    "        bothProblems.append(t)\n",
    "print(\"out of\",len(popHDlist),\"total HDs, there were\",len(cleanList),len(discontigOnly),len(enclaveOnly),\n",
    "      len(bothProblems),\"HDs that were clean, discontig only, enclave-only, both problems after triage\")\n",
    "print(\"this took\",int(time.time() - startTime),\"seconds with maxLoop = \", maxLOOP)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "id": "623fb818-67d9-458d-b854-4c70dfa449ce",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Now, let's fill in all enclaves that won't put us over 124910 district pop vs 118962 target\n",
      "working on enclave-y HD 1235 . We have evaluated 0 of 1262 enclavy HDs.Time is now 0\n",
      "Out of 1262 HDs with enclaves 12 had enclaves.\n",
      "Of these, 12 wouldn't be over 124910 if all enclaves filled, while 0 were too populous\n",
      "here is enclave pop by final pop for those we filled\n"
     ]
    },
    {
     "data": {
      "image/png": "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gC0RcgAAgC0RcgAAgC0RcgAAgC0RcgAAgC01OeRs3LhRo0ePVmxsrBwOh5YvXx7UbozRM888o5iYGHXp0kUpKSnav39/UE1FRYXGjRsnt9utyMhIZWRk6Pjx40E1u3bt0m233aaIiAjFxcVp/vz59fqybNkyDRw4UBEREUpMTNTq1aubujsAAMCmmhxyTpw4oSFDhujll19usH3+/Pn67//+by1atEibN2/WFVdcodTUVFVXV1s148aN0549e5SXl6eVK1dq48aNeuSRR6z2QCCgkSNHqm/fviosLNSCBQs0Z84cvfrqq1bNpk2bNHbsWGVkZGjHjh1KT09Xenq6iouLm7pLAADAjsxlkGTee+89a762ttZ4vV6zYMECa1llZaVxuVzmrbfeMsYYs3fvXiPJbN261apZs2aNcTgc5ssvvzTGGPPKK6+Y7t27m1OnTlk12dnZZsCAAdb8vffea9LS0oL6k5SUZB599NFG99/v9xtJxu/3N/ozAACgdTX2+zuk1+SUlpbK5/MpJSXFWubxeJSUlKSCggJJUkFBgSIjI3XzzTdbNSkpKQoLC9PmzZutmhEjRsjpdFo1qampKikp0ddff23VnL+dupq67TTk1KlTCgQCQRMAALCnkIYcn88nSYqOjg5aHh0dbbX5fD5FRUUFtXfq1Ek9evQIqmloHedv40I1de0NycnJkcfjsaa4uLim7iIAAGgnOtTdVbNmzZLf77emzz//vLW7BAAAmklIQ47X65UklZeXBy0vLy+32rxer44ePRrUfvbsWVVUVATVNLSO87dxoZq69oa4XC653e6gCQAA2FNIQ058fLy8Xq/y8/OtZYFAQJs3b1ZycrIkKTk5WZWVlSosLLRqPvzwQ9XW1iopKcmq2bhxo86cOWPV5OXlacCAAerevbtVc/526mrqtgMAADq2Joec48ePq6ioSEVFRZLOXWxcVFSkw4cPy+FwKCsrS//xH/+h999/X7t379aDDz6o2NhYpaenS5Kuv/56jRo1SpMnT9aWLVv0t7/9TdOmTdOYMWMUGxsrSbr//vvldDqVkZGhPXv26J133tFLL72kGTNmWP147LHHlJubqxdeeEH79u3TnDlztG3bNk2bNu3yRwUAALR/Tb1ta926dUZSvWnChAnGmHO3kT/99NMmOjrauFwuc8cdd5iSkpKgdRw7dsyMHTvW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c3Otmrfffts4nU7zpz/9yezZs8dMnjzZREZGmvLy8hYbi8v161//2vTs2dOsXLnSlJaWmmXLlpkrr7zSvPTSS1YNv5dNc++995qEhASzYcMGs3//fjN79mzjdrvNF198YYxhPC9k9erV5sknnzTvvvuukWTee++9oPa2NG6N6Utru9h4/vnPfzZz5841v//9740ks2PHjnrr4G/p5elQISc7O9vceuutF2yvra01Xq/XLFiwwFpWWVlpXC6Xeeutt4wxxuzdu9dIMlu3brVq1qxZYxwOh/nyyy+NMca88sorpnv37ubUqVNB2x4wYIA1f++995q0tLSg7SclJZlHH3308naylTz22GOmf//+pra21lRWVprOnTubZcuWWe2ffPKJkWQKCgqMMef+8YeFhRmfz2fVLFy40LjdbmvcHn/8cTNo0KCg7dx3330mNTXVmh8+fLjJzMy05mtqakxsbKzJyclplv1sDmlpaWbSpElBy37yk5+YcePGGWP4vWyqb775xoSHh5uVK1cGLR82bJh58sknGc9G+tcv5bY0bo3pS1vTUMipU1pa2mDI4W/p5etQp6vef/993XzzzfrZz36mqKgo3Xjjjfr9739vtZeWlsrn8yklJcVa5vF4lJSUpIKCAklSQUGBIiMjdfPNN1s1KSkpCgsL0+bNm62aESNGyOl0WjWpqakqKSnR119/bdWcv526mrrttCenT5/WkiVLNGnSJDkcDhUWFurMmTNB+zdw4ED16dMnaBwTExMVHR1t1aSmpioQCGjPnj1WzbeN0enTp1VYWBhUExYWppSUlHY1jt/97neVn5+vv//975KknTt36qOPPtKdd94pid/Lpjp79qxqamoUERERtLxLly766KOPGM9L1JbGrTF9sQP+ll6+DhVyDh48qIULF+o73/mO1q5dq6lTp+qXv/ylXn/9dUmSz+eTpKBflrr5ujafz6eoqKig9k6dOqlHjx5BNQ2t4/xtXKimrr09Wb58uSorKzVx4kRJ5/bN6XQqMjIyqO5fx/FSxygQCOjkyZP6xz/+oZqamnY/jk888YTGjBmjgQMHqnPnzrrxxhuVlZWlcePGSeL3sqm6deum5ORkPffcczpy5Ihqamq0ZMkSFRQUqKysjPG8RG1p3BrTFzvgb+nl61BvIa+trdXNN9+s559/XpJ04403qri4WIsWLdKECRNauXft1x//+Efdeeedio2Nbe2utEtLly7VG2+8oTfffFODBg1SUVGRsrKyFBsby+/lJfrf//1fTZo0Sb1791Z4eLiGDRumsWPHqrCwsLW7BqAFdagjOTExMUpISAhadv311+vw4cOSJK/XK0n1rlwvLy+32rxer44ePRrUfvbsWVVUVATVNLSO87dxoZq69vbis88+0wcffKCHH37YWub1enX69GlVVlYG1f7rOF7qGLndbnXp0kW9evVSeHh4ux/HmTNnWkdzEhMT9cADD2j69OnKycmRxO/lpejfv782bNig48eP6/PPP9eWLVt05swZXXPNNYznJWpL49aYvtgBf0svX4cKOd/73vdUUlIStOzvf/+7+vbtK0mKj4+X1+tVfn6+1R4IBLR582YlJydLkpKTk1VZWRn0f4QffvihamtrlZSUZNVs3LhRZ86csWry8vI0YMAAde/e3ao5fzt1NXXbaS9ee+01RUVFKS0tzVp20003qXPnzkH7V1JSosOHDweN4+7du4P+IObl5cntdltB9GJj5HQ6ddNNNwXV1NbWKj8/v12N4zfffKOwsOB/iuHh4aqtrZXE7+XluOKKKxQTE6Ovv/5aa9eu1d133814XqK2NG6N6Ysd8Lc0BFr7yueWtGXLFtOpUyfz61//2uzfv9+88cYbpmvXrmbJkiVWzbx580xkZKT5y1/+Ynbt2mXuvvvuBm+RvPHGG83mzZvNRx99ZL7zne8E3SJZWVlpoqOjzQMPPGCKi4vN22+/bbp27VrvFslOnTqZ//qv/zKffPKJmT17dpu+tbQhNTU1pk+fPiY7O7te25QpU0yfPn3Mhx9+aLZt22aSk5NNcnKy1V532+PIkSNNUVGRyc3NNVdddVWDtz3OnDnTfPLJJ+bll19u8LZHl8tlFi9ebPbu3WseeeQRExkZGXSnQVs3YcIE07t3b+sW8nfffdf06tXLPP7441YNv5dNk5uba9asWWMOHjxo/u///s8MGTLEJCUlmdOnTxtjGM8LqaqqMjt27DA7duwwksxvfvMbs2PHDvPZZ58ZY9rWuDWmL63tYuN57Ngxs2PHDrNq1Sojybz99ttmx44dpqyszFoHf0svT4cKOcYYs2LFCjN48GDjcrnMwIEDzauvvhrUXltba55++mkTHR1tXC6XueOOO0xJSUlQzbFjx8zYsWPNlVdeadxut3nooYdMVVVVUM3OnTvNrbfealwul+ndu7eZN29evb4sXbrUXHfddcbpdJpBgwaZVatWhX6Hm9HatWuNpHrjY4wxJ0+eND//+c9N9+7dTdeuXc2Pf/zjoH+4xhhz6NAhc+edd5ouXbqYXr16mV/96lfmzJkzQTXr1q0zQ4cONU6n01xzzTXmtddeq7et3/3ud6ZPnz7G6XSa4cOHm48//jik+9ncAoGAeeyxx0yfPn1MRESEueaaa8yTTz4ZdIstv5dN884775hrrrnGOJ1O4/V6TWZmpqmsrLTaGc+GrVu3zkiqN02YMMEY07bGrTF9aW0XG8/XXnutwfbZs2db6+Bv6eVxGHPeY1UBAABsokNdkwMAADoOQg4AALAlQg4AALAlQg4AALAlQg4AALAlQg4AALAlQg4AALAlQg4AALAlQg4AALAlQg4AALAlQg4AALAlQg4AALCl/w8W0MoY7zFbPQAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#OPTIONAL if still enclaves -- rerun the CANFILL CODE  #check if sum of enclave pops small enough to add\n",
    "maxNudgeUpPop = int(0.02 * aDP)\n",
    "maxPostFixPop = int(1.05 * aDP)\n",
    "print(\"Now, let's fill in all enclaves that won't put us over\",maxPostFixPop,\"district pop vs\",int(aDP),\"target\")\n",
    "nOrigEnclaves = [0 for t in range(nHDs)]\n",
    "totalEnclavePop = [0. for t in range(nHDs)]\n",
    "tryToFill, canFill, cantFill = list(), list(), list()\n",
    "startTime = time.time()  #takes about xx sec per HD triage\n",
    "        \n",
    "for iii, t in enumerate(enclaveOnly):  #internals + edgers):\n",
    "    if iii%100 == 0:\n",
    "        print(\"working on enclave-y HD\",t,\". We have evaluated\",iii,\"of\",len(internals+edgers),\"enclavy HDs.Time is now\",int(time.time() - startTime) )\n",
    "    unbroken, noEnclave,smallPieceList,enclaveList = enclaveCheck(HDunitList[t], unitNbrs)\n",
    "    if unbroken and not noEnclave:  #\"and unbroken\" new 1/15 - discontig HDs will usually appear to have enclaves.  We'll fix these in later block\n",
    "        tryToFill.append(t)\n",
    "        enclaveLists = getEnclaveLists(HDunitList[t], unitNbrs)\n",
    "        nOrigEnclaves[t] = len(enclaveLists)\n",
    "        totalEnclavePop[t] = np.sum( [ [np.sum([unitPop[u] for u in eL])] for eL in enclaveLists ] ) \n",
    "        if HDvPop[t] + totalEnclavePop[t] <= maxPostFixPop or totalEnclavePop[t] < maxNudgeUpPop:\n",
    "            canFill.append(t)\n",
    "            for eL in enclaveLists:\n",
    "                HDunitList[t] += eL\n",
    "                HDvPop[t] += np.sum([unitPop[u] for u in eL])\n",
    "        else:\n",
    "            cantFill.append(t)\n",
    "print(\"Out of\",len(internals+edgers),\"HDs with enclaves\",len(tryToFill),\"had enclaves.\")\n",
    "print(\"Of these,\",len(canFill),\"wouldn't be over\",maxPostFixPop,\"if all enclaves filled, while\",len(cantFill),\"were too populous\")\n",
    "plt.scatter([HDvPop[t] for t in canFill],[totalEnclavePop[t] for t in canFill])\n",
    "print(\"here is enclave pop by final pop for those we filled\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1692c13f-175a-4e08-bd41-a6eaeb432894",
   "metadata": {},
   "outputs": [],
   "source": [
    "#Note: see original vanillaHD-OH (Congressional) if we have stubborn ones to fill"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "id": "18f46c40-7f28-4714-962f-0b462ff97b8a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "final ??? check -- any more disco's ?\n",
      "working on HD 1190 time is now 0 sec\n",
      "working on HD 1691 time is now 0 sec\n",
      "working on HD 7187 time is now 1 sec\n",
      "out of 1446 total HDs, there were 1446 0 0 0 HDs that were clean, discontig only, enclave-only, both problems after triage\n",
      "this took 2 seconds with maxLoop =  5\n"
     ]
    }
   ],
   "source": [
    "print(\"final ??? check -- any more disco's ?\")  #run again if we ran above block to fill minor enclaves\n",
    "maxLOOP = 5  #can increase to avoid false enclave detection\n",
    "discontigOnly, enclaveOnly, bothProblems, cleanList = list(), list(), list(), list()\n",
    "startTime = time.time()\n",
    "for i,t in enumerate(popHDlist):\n",
    "    if i%500 == 0:\n",
    "        print(\"working on HD\",t,\"time is now\",int(time.time() - startTime),\"sec\")\n",
    "    unbroken, noEnclave,smallPieceList,enclaveList = enclaveCheck(HDunitList[t], unitNbrs, maxLOOP)\n",
    "    if not noEnclave:\n",
    "        noEnclave, enclaveList = isContiguous(list({u for u in range(nUnits)}.difference(set(HDunitList[t]))),unitNbrs)\n",
    "    if unbroken and noEnclave:\n",
    "        cleanList.append(t)\n",
    "    if unbroken and not noEnclave:\n",
    "        enclaveOnly.append(t)\n",
    "    if not unbroken and noEnclave:\n",
    "        discontigOnly.append(t)\n",
    "    if not unbroken and not noEnclave:\n",
    "        bothProblems.append(t)\n",
    "print(\"out of\",len(popHDlist),\"total HDs, there were\",len(cleanList),len(discontigOnly),len(enclaveOnly),\n",
    "      len(bothProblems),\"HDs that were clean, discontig only, enclave-only, both problems after triage\")\n",
    "print(\"this took\",int(time.time() - startTime),\"seconds with maxLoop = \", maxLOOP)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "id": "de4d8af8-cc64-4215-9b95-f4c6a2bd03af",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "savedAgainUnitList = [HDunitList[t].copy() for t in range(nHDs)] #safekeeping    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 149,
   "id": "f4bb76c7-0ae0-40cb-9c6a-ee436dfc30c4",
   "metadata": {
    "jupyter": {
     "source_hidden": true
    }
   },
   "outputs": [],
   "source": [
    "HDunitList = [savedAgainUnitList[t].copy() for t in range(nHDs)]  #restart"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "id": "1e983c03-777a-4e81-bed0-34a620175f83",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "let's visualize over-used and underused units, < 0.75 or > 1.25\n"
     ]
    },
    {
     "data": {
      "image/png": "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o8vAcsUVV+jHP/6xDh06pE996lP6y1/+oh07duiRRx7pdvunUvcpgUDgXHcFADDI2Wy25JmVgWCapiKRiEKhkMLhsPx+vyKRSIeg88kAdDrDMOR2u5WZmanMzMzk9yf+pteBZf/+/SovL1coFFJ2drY2bdqkKVOmyOfzKSsrSytXrtTDDz8s0zS1atUqxeNx1dTUdNnfqlWrFAgENGnSJNntdsXjcX3nO9/RjTfe2G0dq1ev1re//e3elg8AQL879Qv76b+090YikVA4HFZ7e7uamprU3t7eaaiRzhyk/Mmgk44Danui14GltLRU+/btk9/v129+8xstW7ZM27dv15QpU/T000/rtttu0/e+9z3ZbDbdcMMNmj59ercp8de//rWefPJJPfXUU5o6dar27dunu+++WyNHjtSyZcu6XK+iokL33HNP8udAIKDi4uLe7g4AAClns9mSoaM3EomEIpGI2tvb5ff7dfz48eTcKt2tk476PIZl3rx5Gj9+vNavX59sa2hokMPhUG5uroqKivS1r31NX//61ztdv7i4WKtWrdLtt9+ebHvooYf0xBNP6O233+5xHYxhAQAg/Qz4GJZTTp3GOl1hYaEkqbKyUnV1dbr22mu7XL+tre2MMzB2uz1tEyAAAOh/vQosFRUVWrhwoUaPHq2WlhY99dRT2rZtm7Zs2SJJ2rBhgyZPniyfz6edO3dq+fLlWrFihUpLS5N9zJ07V0uWLNEdd9whSVq0aJG+853vaPTo0Zo6dar+/Oc/65FHHtFXvvKVftxNAACQznoVWOrq6nTTTTeppqZGXq9XZWVl2rJli+bPny9JqqqqUkVFhRobG1VSUqL77rtPK1as6NBHdXW1Ghoakj9///vf1/33369//ud/Vl1dnUaOHKl/+qd/0je+8Y1+2D0AADAY9HkMi1UwhgUAgPTT0+9vbvIGAACWR2ABAACWR2ABAACWR2ABAACWR2ABAACWR2ABAACWR2ABAACWR2ABAACWR2ABAACWR2ABAACWR2ABAACWR2ABAACWR2ABAACWR2ABAACWR2ABAACWR2ABAACWR2ABAACWR2ABAACWR2ABAACWR2ABAACWR2ABAACWR2ABAACWR2ABAACWR2ABAACWR2ABAACWR2ABAACWR2ABAACWR2ABAACWR2ABAACWR2ABAACWR2ABAACWR2ABAACW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2rJli+bPny9JqqqqUkVFhRobG1VSUqL77rtPK1as6NDHqUtGp3zpS19SfX29vvGNb+j48eOaNm2ann/++TMG4gIAgKGrz/OwWAXzsAAAkH4GfB4WAACA84XAAgAALK/XtzVb1akrW8x4CwBA+jj1vX22ESqDJrC0tLRIEjPeAgCQhlpaWuT1ert8f9AMuk0kEjp27JhycnJkGEaqyxn0AoGAiouLdeTIEQY5pxGOW/rhmKUnjlvPmaaplpYWjRw5stuZ8QfNGRabzaZRo0aluowhx+Px8GFMQxy39MMxS08ct57p7szKKQy6BQAAlkdgAQAAlkdgwTlxuVz65je/yQMo0wzHLf1wzNITx63/DZpBtwAAYPDiDAsAALA8AgsAALA8AgsAALA8AgsAALA8Agu6dOjQIS1evFiFhYXyeDz6zGc+o5deeqnTZU+cOKFRo0bJMAw1Nzd3229JSYkMw+jwWrNmzQDswdAzUMessbFRN954ozwej3Jzc3XLLbeotbV1APZgaDrbcTtx4oQ+//nPa+TIkXK5XCouLtYdd9xx1men8VkbOAN1zPisdY3Agi5dc801isViqqys1J49e3TxxRfrmmuu0fHjx89Y9pZbblFZWVmP+37ggQdUU1OTfN155539WfqQNVDH7MYbb9SBAwf0wgsv6LnnntPLL7+sr371q/1d/pB1tuNms9m0ePFi/eEPf9ChQ4f0n//5n/rTn/6kW2+99ax981kbGAN1zPisdcMEOlFfX29KMl9++eVkWyAQMCWZL7zwQodlf/jDH5pXXXWV+eKLL5qSzKampm77HjNmjPnoo48OQNVD20Ads4MHD5qSzN27dyfbNm/ebBqGYX700Uf9vh9DTW+O2+kef/xxc9SoUd32zWdtYAzUMeOz1j3OsKBTBQUFKi0t1S9/+UsFg0HFYjGtX79ew4cP14wZM5LLHTx4UA888IB++ctfdvvQqk9as2aNCgoKdMkll2jt2rWKxWIDsRtDykAds507dyo3N1czZ85Mts2bN082m027du0akH0ZSnp63E537Ngx/e53v9NVV1111v75rPW/gTpmfNa6N2gefoj+ZRiG/vSnP+m6665TTk6ObDabhg8frueff155eXmSpHA4rBtuuEFr167V6NGj9d577/Wo77vuukvTp09Xfn6+XnvtNVVUVKimpkaPPPLIQO7SoDdQx+z48eMaPnx4hzaHw6H8/PxOLzWhd3py3E654YYb9Mwzz6i9vV2LFi3ST3/602775rM2MAbqmPFZ6x5nWIaYVatWnTEI75Ovt99+W6Zp6vbbb9fw4cP1yiuv6I033tB1112nRYsWqaamRpJUUVGhyZMn68tf/nKvarjnnns0e/ZslZWV6dZbb9V3v/tdff/731c4HB6IXU57Vjhm6L3+PG6nPProo9q7d6+eeeYZVVdX65577um2Bj5rvWOFY4auMTX/EFNfX68TJ050u8y4ceP0yiuvaMGCBWpqaurwaPSJEyfqlltu0apVqzRt2jTt379fhmFIkkzTVCKRkN1u13333advf/vbParpwIEDuuiii/T222+rtLT03HdukEr1Mfv5z3+ur33ta2pqakq2xWIxud1uPf3001qyZEk/7eng0p/HrTM7duzQZz/7WR07dkwXXHBBj2ris9a9VB8zPmvd45LQEOPz+eTz+c66XFtbmySdMcbBZrMpkUhIkn7729+qvb09+d7u3bv1la98Ra+88orGjx/f45r27duXPKWKM6X6mJWXl6u5uVl79uxJXp+vrKxUIpHQ5Zdffk77NBT053HrzKn3enO2hM9a91J9zPisnUXqxvvCyurr682CggLzi1/8orlv3z6zqqrKvPfee82MjAxz3759na7z0ksvnXHHya5du8zS0lLz6NGjpmma5muvvWY++uij5r59+8zq6mrziSeeMH0+n3nTTTedj90a1AbqmJmmaX7+8583L7nkEnPXrl3mjh07zIkTJ5o33HDDQO/SkNCT4/bf//3f5s9//nNz//795uHDh83nnnvOnDx5snnllVcm++Gzdv4M1DEzTT5r3SGwoEu7d+82FyxYYObn55s5OTnmrFmzzD/+8Y9dLt/Zl9+ptsOHD5umaZp79uwxL7/8ctPr9Zput9ucPHmy+fDDD5uhUGiA92ZoGIhjZpqmeeLECfOGG24ws7OzTY/HY958881mS0vLAO7J0HK241ZZWWmWl5cnPzcTJ040V65cyWcthQbimJkmn7XuMIYFAABYHncJAQAAyyOwAAAAyyOwAAAAyyOwAAAAyyOwAAAAyyOwAAAAyyOwAAAAyyOwAAAAyyOwAAAAyyOwAAAAyyOwAAAAyyOwAAAAy/v/AYw4ah6WrQ+uAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "and here is the histogram of HD pops\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "minUnitUse, maxUnitUse = 0.75, 1.25\n",
    "print(\"let's visualize over-used and underused units, <\",minUnitUse,\"or >\",maxUnitUse)\n",
    "unitUse = [0. for u in range(nUnits)]\n",
    "for t in popHDlist:\n",
    "    for u in HDunitList[t]:\n",
    "        unitUse[u] += HDweight[t] # * nDistricts\n",
    "for u in range(nUnits):\n",
    "    if unitUse[u] < minUnitUse:\n",
    "        plotPoly(unitGeom[u],0.2)\n",
    "        plotCenter(\"u\",unitCP[u])\n",
    "    if unitUse[u] > maxUnitUse:\n",
    "        plotPoly(unitGeom[u], 1.5)\n",
    "plotPoly(MAP,0.2)\n",
    "plt.show()\n",
    "print(\"and here is the histogram of HD pops\")\n",
    "plt.hist([HDvPop[t] for t in popHDlist],bins = [0, 0.6*aDP, 0.7*aDP, 0.85*aDP, 0.9*aDP, 0.95*aDP,\n",
    "         0.98*aDP, aDP, 1.02*aDP, 1.05*aDP, 1.1*aDP, 1.15*aDP, 1.3*aDP, 1.5*aDP, 2.0*aDP])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f7e127ba-80ba-4618-b7a2-91a66c2abd7e",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "raw",
   "id": "f09dba10-00ff-4d3e-8a42-27b4630ee244",
   "metadata": {},
   "source": [
    "HDvPop = [0. for t in range(nHDs)]\n",
    "tList = [t for t in range(nHDs)]\n",
    "for t in popHDlist:\n",
    "    for u in HDunitList[t]:\n",
    "        HDvPop[t] += unitPop[u]\n",
    "outDF = pd.DataFrame( {\"tract\":tList,\"HDweight\":HDweight,\"HDvPop\":HDvPop,\"HDunitList\":HDunitList,\n",
    "                      \"centroid x\":hdCPx, \"centroid y\":hdCPy} )\n",
    "outname = STATE+str(int(nHDs))+\"HamFrankContigButOffPopUnit.csv\" #\"contigUnpatchedB.csv\"\n",
    "outpath = \"2024state_HD_output/\"+outname\n",
    "outDF.to_csv(outpath)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 153,
   "id": "7b9b68ef-6ae9-4d80-895d-41a86f48a55f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "hi\n"
     ]
    }
   ],
   "source": [
    "print(\"hi\")  #see MN for code to boost any under-used CCBs via border linking strategy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f6150cac-2249-415b-a364-edf55dc441ea",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "114705bb-9640-45f1-9f25-030030efaa63",
   "metadata": {},
   "outputs": [],
   "source": [
    "#below here -- working on tightening use distro while squaring up pop"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 124,
   "id": "5d7d8519-eb3d-4345-9ac6-ab888e61c348",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "before patching, make another copy of the current HD lists\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "pre-patch avg use and its sd are 18.07843 1.67643\n"
     ]
    }
   ],
   "source": [
    "print(\"before patching, make another copy of the current HD lists\")\n",
    "latestHDlist = [HDunitList[t].copy() for t in range(nHDs)]   #More safekeeping\n",
    "latestHDpop, latestUnitUse = [0. for t in range(nHDs)], [0. for u in range(nUnits)]\n",
    "for t in popHDlist:\n",
    "    for u in latestHDlist[t]:\n",
    "        latestHDpop[t] += unitPop[u]\n",
    "        latestUnitUse[u] += nDistricts * HDweight[t]\n",
    "latestUnitWeights, latestUnitDistro = list(), list()\n",
    "for u in range(nUnits):\n",
    "    if latestUnitUse[u] > 0.1:\n",
    "        latestUnitDistro.append(latestUnitUse[u])\n",
    "        latestUnitWeights.append(unitPop[u]/statePop)\n",
    "plt.hist(latestUnitDistro, weights=latestUnitWeights, bins = 20, histtype = \"step\")\n",
    "plt.show()\n",
    "latestAvg, latestSD = getWeightedAvgAndSD(latestUnitDistro, latestUnitWeights)\n",
    "print(\"pre-patch avg use and its sd are\",r5(latestAvg),r5(latestSD) )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 125,
   "id": "b1971853-bda7-49a4-9f25-1bdfd5e75aa2",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "working on avg unit-to-HDcp dist for HD 1190\n",
      "working on avg unit-to-HDcp dist for HD 6987\n"
     ]
    }
   ],
   "source": [
    "avgDist = [0. for t in range(nHDs)]  #about 6sec per 1000 HDs\n",
    "for i,t in enumerate(popHDlist):\n",
    "    if i%800 == 0:\n",
    "        print(\"working on avg unit-to-HDcp dist for HD\",t)\n",
    "    avgDist[t] =  np.sum([unitPop[u]*unitCP[u].distance(hdCP[t]) for u in HDunitList[t] ]) / HDvPop[t]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 126,
   "id": "46f1704d-bbc6-4dc7-9381-39fa2760aa66",
   "metadata": {},
   "outputs": [],
   "source": [
    "nDistricts = 1  #fudge so that we properly calculate unitUse for FrankHam code in all below rows"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "id": "f5b99900-614a-47df-b7de-5d59fffd6d3a",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAk0AAAGdCAYAAAAPLEfqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAvkklEQVR4nO3df1RVdb7/8Rdg/MjxgD8CPBMllZM6OpqaiJrVRJ5u1L2UlSip10huBX1VKsUfoTkWjU2lpsk4dcfWulLmneR6xUgujlFK/kC9qYnVzdLGDtoonKREhP39w8Uejzr6wTkHBJ+Ptc5asfd77/3en6WeV5+zz4cAy7IsAQAA4LwCm7sBAACAloDQBAAAYIDQBAAAYIDQBAAAYIDQBAAAYIDQBAAAYIDQBAAAYIDQBAAAYKBNczdwKauvr9fBgwfVrl07BQQENHc7AADAgGVZ+uGHH+R0OhUY6Lv5IULTeRw8eFAxMTHN3QYAALgIBw4c0NVXX+2z8xGazqNdu3aSTg26w+Fo5m4AAIAJj8ejmJgY+33cVwhN59HwkZzD4SA0AQDQwvj60RoeBAcAADBAaAIAADBAaAIAADBAaAIAADBAaAIAADBAaAIAADBAaAIAADBAaAIAADBAaAIAADBAaAIAADBAaAIAADBAaAIAADBAaAIAADBAaAIAADDQprkbAIDLQZesggvWfP1iYhN0AuBiMdMEAABggNAEAABggNAEAABggNAEAABggNAEAABggG/PAQAuCXzDEJc6ZpoAAAAMEJoAAAAMEJoAAAAM8EwTAMDvTJ5XAi51zDQBAAAYYKYJAFoZvoUG+AczTQAAAAYITQAAAAYITQAAAAYITQAAAAYITQAAAAYaHZpKSkp07733yul0KiAgQPn5+fa+2tpaTZkyRb169VLbtm3ldDo1ZswYHTx40OscR44cUUpKihwOhyIiIpSamqpjx4551Xz66ae65ZZbFBoaqpiYGM2dO/esXlasWKFu3bopNDRUvXr10po1a7z2W5al7Oxsde7cWWFhYUpISNAXX3zR2FsGAABo/JID1dXV6t27tx555BHdf//9Xvt+/PFHbdu2Tc8++6x69+6to0ePasKECfrnf/5nbd261a5LSUnRd999p6KiItXW1mrcuHFKS0tTXl6eJMnj8WjYsGFKSEhQbm6udu7cqUceeUQRERFKS0uTJG3cuFEjR45UTk6O7rnnHuXl5SkpKUnbtm1Tz549JUlz587VggUL9NZbbyk2NlbPPvusXC6XPvvsM4WGhl70oAHA5cB0QUqWL8DlIsCyLOuiDw4I0MqVK5WUlPR3a7Zs2aIBAwbom2++0TXXXKM9e/aoR48e2rJli/r37y9JKiws1N13361vv/1WTqdTixcv1vTp0+V2uxUcHCxJysrKUn5+vsrLyyVJI0aMUHV1tVavXm1fa+DAgerTp49yc3NlWZacTqeeeuopPf3005KkqqoqRUVFaenSpUpOTr7g/Xk8HoWHh6uqqkoOh+NihwkAmnTtJF9dy5ehyVcrghPQYMJf799+f6apqqpKAQEBioiIkCSVlpYqIiLCDkySlJCQoMDAQG3atMmuGTp0qB2YJMnlcmnv3r06evSoXZOQkOB1LZfLpdLSUknSvn375Ha7vWrCw8MVFxdn1wAAAJjy64rgx48f15QpUzRy5Eg76bndbkVGRno30aaNOnToILfbbdfExsZ61URFRdn72rdvL7fbbW87veb0c5x+3LlqzlRTU6Oamhr7Z4/H06j7BQAArZffZppqa2v10EMPybIsLV682F+X8amcnByFh4fbr5iYmOZuCQAAXCL8EpoaAtM333yjoqIir88To6OjdejQIa/6kydP6siRI4qOjrZrKioqvGoafr5Qzen7Tz/uXDVnmjp1qqqqquzXgQMHGnXfAACg9fJ5aGoITF988YX+53/+Rx07dvTaHx8fr8rKSpWVldnb1q1bp/r6esXFxdk1JSUlqq2ttWuKiop04403qn379nZNcXGx17mLiooUHx8vSYqNjVV0dLRXjcfj0aZNm+yaM4WEhMjhcHi9AAAApIsITceOHdOOHTu0Y8cOSaceuN6xY4f279+v2tpaPfDAA9q6dauWLVumuro6ud1uud1unThxQpLUvXt33XXXXRo/frw2b96sDRs2KCMjQ8nJyXI6nZKkUaNGKTg4WKmpqdq9e7eWL1+u+fPnKzMz0+5jwoQJKiws1Msvv6zy8nLNmjVLW7duVUZGhqRT3+ybOHGi5syZo1WrVmnnzp0aM2aMnE7neb/tBwAAcC6NfhB869atuv322+2fG4LM2LFjNWvWLK1atUqS1KdPH6/j/vznP+u2226TJC1btkwZGRm64447FBgYqOHDh2vBggV2bXh4uNau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AAAABghNAAAABghNAAAABghNAAAABghNAAAABghNAAAABghNAAAABghNAAAABghNAAAABghNAAAABghNAAAABghNAAAABghNAAAABghNAAAABghNAAAABto0dwMAAFyKumQVXLDm6xcTm6ATXCqYaQIAADBAaAIAADBAaAIAADDAM00AfILnPwC0dsw0AQAAGCA0AQAAGCA0AQAAGCA0AQAAGCA0AQAAGCA0AQAAGCA0AQAAGCA0AQAAGCA0AQAAGGBFcABAq2KyOj1wMZhpAgAAMEBoAgAAMMDHcwCaDB+bAGjJmGkCAAAwQGgCAAAwQGgCAAAwQGgCAAAw4PfQ9OKLLyogIEATJ060tx0/flzp6enq2LGjfvazn2n48OGqqKjwOm7//v1KTEzUlVdeqcjISD3zzDM6efKkV8369evVt29fhYSE6IYbbtDSpUvPuv6iRYvUpUsXhYaGKi4uTps3b/bHbQIAgFbOr6Fpy5Yt+v3vf69f/epXXtsnTZqk//7v/9aKFSv04Ycf6uDBg7r//vvt/XV1dUpMTNSJEye0ceNGvfXWW1q6dKmys7Ptmn379ikxMVG33367duzYoYkTJ+rRRx/VBx98YNcsX75cmZmZmjlzprZt26bevXvL5XLp0KFD/rxtAADQCgVYlmX548THjh1T37599frrr2vOnDnq06eP5s2bp6qqKl111VXKy8vTAw88IEkqLy9X9+7dVVpaqoEDB+r999/XPffco4MHDyoqKkqSlJubqylTpujw4cMKDg7WlClTVFBQoF27dtnXTE5OVmVlpQoLCyVJcXFxuvnmm7Vw4UJJUn19vWJiYvTkk08qKyvrgvfg8XgUHh6uqqoqORwOXw8R0KqwnAAuR1+/mNjcLeAc/PX+7beZpvT0dCUmJiohIcFre1lZmWpra722d+vWTddcc41KS0slSaWlperVq5cdmCTJ5XLJ4/Fo9+7dds2Z53a5XPY5Tpw4obKyMq+awMBAJSQk2DVnqqmpkcfj8XoBAABIflrc8p133tG2bdu0ZcuWs/a53W4FBwcrIiLCa3tUVJTcbrddc3pgatjfsO98NR6PRz/99JOOHj2qurq6c9aUl5efs++cnBw999xz5jcKAAAuGz6faTpw4IAmTJigZcuWKTQ01Nen96upU6eqqqrKfh04cKC5WwIAAJcIn4emsrIyHTp0SH379lWbNm3Upk0bffjhh1qwYIHatGmjqKgonThxQpWVlV7HVVRUKDo6WpIUHR191rfpGn6+UI3D4VBYWJg6deqkoKCgc9Y0nONMISEhcjgcXi8AAADJD6Hpjjvu0M6dO7Vjxw771b9/f6WkpNj/fcUVV6i4uNg+Zu/evdq/f7/i4+MlSfHx8dq5c6fXt9yKiorkcDjUo0cPu+b0czTUNJwjODhY/fr186qpr69XcXGxXQMAAGDK5880tWvXTj179vTa1rZtW3Xs2NHenpqaqszMTHXo0EEOh0NPPvmk4uPjNXDgQEnSsGHD1KNHD40ePVpz586V2+3WjBkzlJ6erpCQEEnSY489poULF2ry5Ml65JFHtG7dOr377rsqKPjbN3gyMzM1duxY9e/fXwMGDNC8efNUXV2tcePG+fq2AQBAK+eXB8Ev5NVXX1VgYKCGDx+umpoauVwuvf766/b+oKAgrV69Wo8//rji4+PVtm1bjR07VrNnz7ZrYmNjVVBQoEmTJmn+/Pm6+uqr9cYbb8jlctk1I0aM0OHDh5WdnS23260+ffqosLDwrIfDAQAALsRv6zS1BqzTBJhjnSZcjlin6dLU4tZpAgAAaE0ITQAAAAYITQAAAAYITQAAAAYITQAAAAYITQAAAAYITQAAAAYITQAAAAaaZUVwAABaA5NFXVkAs/VgpgkAAMAAoQkAAMAAoQkAAMAAoQkAAMAAoQkAAMAAoQkAAMAAoQkAAMAAoQkAAMAAoQkAAMAAoQkAAMAAoQkAAMAAoQkAAMAAoQkAAMAAoQkAAMAAoQkAAMAAoQkAAMAAoQkAAMAAoQkAAMAAoQkAAMAAoQkAAMAAoQkAAMBAm+ZuAACA1qxLVsEFa75+MbEJOsE/ipkmAAAAA4QmAAAAA4QmAAAAA4QmAAAAA4QmAAAAA4QmAAAAA4QmAAAAA4QmAAAAA4QmAAAAA4QmAAAAA4QmAAAAA/zuOQAXZPK7swCgtWOmCQAAwIDPQ1NOTo5uvvlmtWvXTpGRkUpKStLevXu9ao4fP6709HR17NhRP/vZzzR8+HBVVFR41ezfv1+JiYm68sorFRkZqWeeeUYnT570qlm/fr369u2rkJAQ3XDDDVq6dOlZ/SxatEhdunRRaGio4uLitHnzZl/fMgAAuAz4/OO5Dz/8UOnp6br55pt18uRJTZs2TcOGDdNnn32mtm3bSpImTZqkgoICrVixQuHh4crIyND999+vDRs2SJLq6uqUmJio6Ohobdy4Ud99953GjBmjK664Qi+88IIkad++fUpMTNRjjz2mZcuWqbi4WI8++qg6d+4sl8slSVq+fLkyMzOVm5uruLg4zZs3Ty6XS3v37lVkZKSvbx0AAL8x+Zj86xcTm6CTy1eAZVmWPy9w+PBhRUZG6sMPP9TQoUNVVVWlq666Snl5eXrggQckSeXl5erevbtKS0s1cOBAvf/++7rnnnt08OBBRUVFSZJyc3M1ZcoUHT58WMHBwZoyZYoKCgq0a9cu+1rJycmqrKxUYWGhJCkuLk4333yzFi5cKEmqr69XTEyMnnzySWVlZV2wd4/Ho/DwcFVVVcnhcPh6aIAWg2eaAP8yCTuEJnP+ev/2+zNNVVVVkqQOHTpIksrKylRbW6uEhAS7plu3brrmmmtUWloqSSotLVWvXr3swCRJLpdLHo9Hu3fvtmtOP0dDTcM5Tpw4obKyMq+awMBAJSQk2DVnqqmpkcfj8XoBAABIfg5N9fX1mjhxogYPHqyePXtKktxut4KDgxUREeFVGxUVJbfbbdecHpga9jfsO1+Nx+PRTz/9pO+//151dXXnrGk4x5lycnIUHh5uv2JiYi7uxgEAQKvj19CUnp6uXbt26Z133vHnZXxm6tSpqqqqsl8HDhxo7pYAAMAlwm/rNGVkZGj16tUqKSnR1VdfbW+Pjo7WiRMnVFlZ6TXbVFFRoejoaLvmzG+5NXy77vSaM79xV1FRIYfDobCwMAUFBSkoKOicNQ3nOFNISIhCQkIu7oYBAECr5vPQZFmWnnzySa1cuVLr169XbGys1/5+/frpiiuuUHFxsYYPHy5J2rt3r/bv36/4+HhJUnx8vJ5//nkdOnTI/pZbUVGRHA6HevToYdesWbPG69xFRUX2OYKDg9WvXz8VFxcrKSlJ0qmPC4uLi5WRkeHr2wYuSTw4CgC+4/PQlJ6erry8PP3Xf/2X2rVrZz8/FB4errCwMIWHhys1NVWZmZnq0KGDHA6HnnzyScXHx2vgwIGSpGHDhqlHjx4aPXq05s6dK7fbrRkzZig9Pd2eCXrssce0cOFCTZ48WY888ojWrVund999VwUFf3uTyMzM1NixY9W/f38NGDBA8+bNU3V1tcaNG+fr2wYAAK2cz0PT4sWLJUm33Xab1/Y//vGP+td//VdJ0quvvqrAwEANHz5cNTU1crlcev311+3aoKAgrV69Wo8//rji4+PVtm1bjR07VrNnz7ZrYmNjVVBQoEmTJmn+/Pm6+uqr9cYbb9hrNEnSiBEjdPjwYWVnZ8vtdqtPnz4qLCw86+FwAACAC/H7Ok0tGes0oaXz1cdzrNME+BfrNPlWi12nCQAAoDUgNAEAABggNAEAABjw2zpNAADADM8NtgzMNAEAABggNAEAABjg4zmghWI6HwCaFqEJuMwRvgDADB/PAQAAGCA0AQAAGCA0AQAAGCA0AQAAGCA0AQAAGCA0AQAAGCA0AQAAGCA0AQAAGCA0AQAAGCA0AQAAGCA0AQAAGCA0AQAAGCA0AQAAGCA0AQAAGCA0AQAAGCA0AQAAGGjT3A0Al5suWQUXrPn6xcQm6ATA5Yh/gy4eM00AAAAGCE0AAAAGCE0AAAAGCE0AAAAGCE0AAAAGCE0AAAAGCE0AAAAGCE0AAAAGCE0AAAAGWBEcuASZrNgLAGhahCbAEL96AAAub3w8BwAAYICZJgAA0GiX4+w7oQmt3uX4FxsA4HuEJjQLggwA+B5fIvEvQhMg/qEBAFwYoakZNeVsCzM7AAD8YwhNaBTC1/kxYwUArRehCS0aIQUAfI9/W8/tsghNixYt0ksvvSS3263evXvrtdde04ABA5q7LVwAf2kBoGVrbZ9OtPrFLZcvX67MzEzNnDlT27ZtU+/eveVyuXTo0KHmbg0AALQgrX6m6ZVXXtH48eM1btw4SVJubq4KCgr07//+78rKymrm7lonZogAAK1Rqw5NJ06cUFlZmaZOnWpvCwwMVEJCgkpLS8+qr6mpUU1Njf1zVVWVJMnj8filv/qaHy9Y46tr++paJucBAMCUP95jG85pWZZPz9uqQ9P333+vuro6RUVFeW2PiopSeXn5WfU5OTl67rnnztoeExPjtx4vJHxe67wWAACSf997/vrXvyo8PNxn52vVoamxpk6dqszMTPvn+vp6HTlyRB07dlRAQECT9+PxeBQTE6MDBw7I4XA0+fUvFYzD3zAWpzAOpzAOf8NYnMI4nFJVVaVrrrlGHTp08Ol5W3Vo6tSpk4KCglRRUeG1vaKiQtHR0WfVh4SEKCQkxGtbRESEP1s04nA4Lus//A0Yh79hLE5hHE5hHP6GsTiFcTglMNC333dr1d+eCw4OVr9+/VRcXGxvq6+vV3FxseLj45uxMwAA0NK06pkmScrMzNTYsWPVv39/DRgwQPPmzVN1dbX9bToAAAATrT40jRgxQocPH1Z2drbcbrf69OmjwsLCsx4OvxSFhIRo5syZZ31keLlhHP6GsTiFcTiFcfgbxuIUxuEUf41DgOXr7+MBAAC0Qq36mSYAAABfITQBAAAYIDQBAAAYIDQBAAAYIDQ1s0WLFqlLly4KDQ1VXFycNm/efN76yspKpaenq3PnzgoJCdEvfvELrVmzpom69Z/GjMNtt92mgICAs16JiYlN2LF/NPbPw7x583TjjTcqLCxMMTExmjRpko4fP95E3fpXY8aitrZWs2fP1vXXX6/Q0FD17t1bhYWFTditf5SUlOjee++V0+lUQECA8vPzL3jM+vXr1bdvX4WEhOiGG27Q0qVL/d6nvzV2HL777juNGjVKv/jFLxQYGKiJEyc2SZ9NobFj8d577+nOO+/UVVddJYfDofj4eH3wwQdN06wfNXYcPv74Yw0ePFgdO3ZUWFiYunXrpldffbXR1yU0NaPly5crMzNTM2fO1LZt29S7d2+5XC4dOnTonPUnTpzQnXfeqa+//lr/+Z//qb179+oPf/iDfv7znzdx577V2HF477339N1339mvXbt2KSgoSA8++GATd+5bjR2HvLw8ZWVlaebMmdqzZ4/efPNNLV++XNOmTWvizn2vsWMxY8YM/f73v9drr72mzz77TI899pjuu+8+bd++vYk7963q6mr17t1bixYtMqrft2+fEhMTdfvtt2vHjh2aOHGiHn300Rb/JtnYcaipqdFVV12lGTNmqHfv3n7urmk1dixKSkp05513as2aNSorK9Ptt9+ue++997L7u9G2bVtlZGSopKREe/bs0YwZMzRjxgwtWbKkcRe20GwGDBhgpaen2z/X1dVZTqfTysnJOWf94sWLreuuu846ceJEU7XYJBo7Dmd69dVXrXbt2lnHjh3zV4tNorHjkJ6ebv3617/22paZmWkNHjzYr302hcaORefOna2FCxd6bbv//vutlJQUv/bZlCRZK1euPG/N5MmTrV/+8pde20aMGGG5XC4/dta0TMbhdLfeeqs1YcIEv/XTnBo7Fg169OhhPffcc75vqJlc7Djcd9991sMPP9yoY5hpaiYnTpxQWVmZEhIS7G2BgYFKSEhQaWnpOY9ZtWqV4uPjlZ6erqioKPXs2VMvvPCC6urqmqptn7uYcTjTm2++qeTkZLVt29ZfbfrdxYzDoEGDVFZWZn9s9dVXX2nNmjW6++67m6Rnf7mYsaipqVFoaKjXtrCwMH388cd+7fVSU1pa6jVukuRyuYz/LqH1q6+v1w8//ODzX2Tb0mzfvl0bN27Urbfe2qjjWv2K4Jeq77//XnV1dWetTB4VFaXy8vJzHvPVV19p3bp1SklJ0Zo1a/Tll1/qiSeeUG1trWbOnNkUbfvcxYzD6TZv3qxdu3bpzTff9FeLTeJixmHUqFH6/vvvNWTIEFmWpZMnT+qxxx5r8R/PXcxYuFwuvfLKKxo6dKiuv/56FRcX67333mvR/0NxMdxu9znHzePx6KefflJYWFgzdYZLxe9+9zsdO3ZMDz30UHO30iyuvvpqHT58WCdPntSsWbP06KOPNup4ZppakPr6ekVGRmrJkiXq16+fRowYoenTpys3N7e5W2s2b775pnr16qUBAwY0dytNbv369XrhhRf0+uuva9u2bXrvvfdUUFCg3/zmN83dWpObP3++unbtqm7duik4OFgZGRkaN26cz3/DOdCS5eXl6bnnntO7776ryMjI5m6nWXz00UfaunWrcnNzNW/ePL399tuNOp6ZpmbSqVMnBQUFqaKiwmt7RUWFoqOjz3lM586ddcUVVygoKMje1r17d7ndbp04cULBwcF+7dkfLmYcGlRXV+udd97R7Nmz/dlik7iYcXj22Wc1evRo+/+UevXqperqaqWlpWn69OktNjBczFhcddVVys/P1/Hjx/XXv/5VTqdTWVlZuu6665qi5UtGdHT0OcfN4XAwy3SZe+edd/Too49qxYoVZ32EezmJjY2VdOrfy4qKCs2aNUsjR440Pr5l/qvaCgQHB6tfv34qLi62t9XX16u4uFjx8fHnPGbw4MH68ssvVV9fb2/7/PPP1blz5xYZmKSLG4cGK1asUE1NjR5++GF/t+l3FzMOP/7441nBqCFQWy34V0r+I38mQkND9fOf/1wnT57Un/70J/3Lv/yLv9u9pMTHx3uNmyQVFRVdcNzQur399tsaN26c3n777VaxNIuv1NfXq6ampnEHNfpxc/jMO++8Y4WEhFhLly61PvvsMystLc2KiIiw3G63ZVmWNXr0aCsrK8uu379/v9WuXTsrIyPD2rt3r7V69WorMjLSmjNnTnPdgk80dhwaDBkyxBoxYkRTt+s3jR2HmTNnWu3atbPefvtt66uvvrLWrl1rXX/99dZDDz3UXLfgM40di08++cT605/+ZP3f//2fVVJSYv3617+2YmNjraNHjzbTHfjGDz/8YG3fvt3avn27Jcl65ZVXrO3bt1vffPONZVmWlZWVZY0ePdqu/+qrr6wrr7zSeuaZZ6w9e/ZYixYtsoKCgqzCwsLmugWfaOw4WJZl1/fr188aNWqUtX37dmv37t3N0b5PNXYsli1bZrVp08ZatGiR9d1339mvysrK5roFn2jsOCxcuNBatWqV9fnnn1uff/659cYbb1jt2rWzpk+f3qjrEpqa2WuvvWZdc801VnBwsDVgwADrk08+sffdeuut1tixY73qN27caMXFxVkhISHWddddZz3//PPWyZMnm7hr32vsOJSXl1uSrLVr1zZxp/7VmHGora21Zs2aZV1//fVWaGioFRMTYz3xxBMtPig0aMxYrF+/3urevbsVEhJidezY0Ro9erT1l7/8pRm69q0///nPlqSzXg33PnbsWOvWW28965g+ffpYwcHB1nXXXWf98Y9/bPK+fe1ixuFc9ddee22T9+5rjR2LW2+99bz1LVVjx2HBggXWL3/5S+vKK6+0HA6HddNNN1mvv/66VVdX16jrBlhWC57HBwAAaCI80wQAAGCA0AQAAGCA0AQAAGCA0AQAAGCA0AQAAGCA0AQAAGCA0AQAAGCA0AQAAGCA0AQAAGCA0AQAAGCA0AQAAGCA0AQAAGDg/wPmfX1t8oWRwQAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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kEDp06ePoqKiVF1dHbK/urpaPp+vzXyXyyWXyxWyLz4+vl3W4na7L6kHx9niurTFNTk9rktbXJPT47q0dSlekzM9c9KqQ97FExsbqxEjRqikpMTZ19LSopKSEvn9/o5YEgAAsEiH/YqnoKBAeXl5GjlypG688UY9/fTTOnnypH70ox911JIAAIAlOixQ7r33Xn366aeaM2eOAoGArr/+em3cuLHNC2cvFJfLpblz57b51dGljuvSFtfk9LgubXFNTo/r0hbX5Mw67HNQAAAAvg5/iwcAAFiHQAEAANYhUAAAgHUIFAAAYJ1OFSiffPKJfvjDHyoxMVFxcXFKT0/Xrl27nHFjjObMmaN+/fopLi5OmZmZOnjwYMh9HDt2TLm5uXK73YqPj9fEiRN14sSJkDl//etf9e1vf1vdunVTSkqKFixY0GYta9as0ZAhQ9StWzelp6frtddeuzAnfQYDBgxQREREmy0/P1+SdOrUKeXn5ysxMVE9e/ZUTk5Omw/Iq6ysVHZ2trp3766kpCTNmDFDTU1NIXP+9Kc/afjw4XK5XLryyiu1fPnyNmtZtGiRBgwYoG7duikjI0M7duy4YOf9TZqbm/XYY49p4MCBiouL0xVXXKEnnngi5G8/XIqPFekfHy89bdo09e/fX3Fxcbrpppu0c+dOZ7yrX5etW7fqjjvuUHJysiIiIrR27dqQcZvO/2zW0l7OdF1efvlljR492vn07j179rS5j672veabrkljY6Nmzpyp9PR09ejRQ8nJybrvvvtUVVUVch9d8bFyUZlO4tixY6Z///7m/vvvN2VlZebQoUNm06ZN5oMPPnDmzJ8/33g8HrN27VrzzjvvmO9///tm4MCB5osvvnDm3H777ea6664z27dvN3/+85/NlVdeacaPH++M19XVGa/Xa3Jzc827775rfv/735u4uDjz29/+1pnz9ttvm6ioKLNgwQKzf/9+M3v2bBMTE2P27t17cS7Gl9TU1JijR486W3FxsZFk3nzzTWOMMQ899JBJSUkxJSUlZteuXWbUqFHmpptucm7f1NRkrrnmGpOZmWl2795tXnvtNdOnTx9TWFjozDl06JDp3r27KSgoMPv37zfPPPOMiYqKMhs3bnTmrF692sTGxpr//u//Nvv27TMPPvigiY+PN9XV1RftWrT6xS9+YRITE826devM4cOHzZo1a0zPnj3Nb37zG2fOpfhYMcaYe+65x6SlpZktW7aYgwcPmrlz5xq3220+/vhjY0zXvy6vvfaaefTRR83LL79sJJlXXnklZNym8z+btVys6/K73/3OPP744+a5554zkszu3bvb3EdX+17zTdektrbWZGZmmhdffNG89957prS01Nx4441mxIgRIffRFR8rF1OnCZSZM2eaW2655WvHW1pajM/nM7/85S+dfbW1tcblcpnf//73xhhj9u/fbySZnTt3OnM2bNhgIiIizCeffGKMMWbx4sWmd+/epr6+PuTYV111lfP1PffcY7Kzs0OOn5GRYf793//9/E6yHTz88MPmiiuuMC0tLaa2ttbExMSYNWvWOOMHDhwwkkxpaakx5h//CCMjI00gEHDmLFmyxLjdbucaPPLII+bqq68OOc69995rsrKynK9vvPFGk5+f73zd3NxskpOTTVFR0QU5z2+SnZ1tHnjggZB9Y8eONbm5ucaYS/ex8ve//91ERUWZdevWhewfPny4efTRRy+56/LVHzo2nf/ZrOVCOV2gtDp8+PBpA6Wrf6/5pmvSaseOHUaS+eijj4wxl8Zj5ULrNL/i+eMf/6iRI0fqBz/4gZKSkjRs2DA999xzzvjhw4cVCASUmZnp7PN4PMrIyFBpaakkqbS0VPHx8Ro5cqQzJzMzU5GRkSorK3PmfOc731FsbKwzJysrSxUVFfr888+dOV8+Tuuc1uN0lIaGBr3wwgt64IEHFBERofLycjU2NoasdciQIUpNTQ25Junp6SEfkJeVlaVgMKh9+/Y5c77pfBsaGlReXh4yJzIyUpmZmR1yTW666SaVlJTo/ffflyS98847euuttzRmzBhJl+5jpampSc3NzerWrVvI/ri4OL311luX7HVpZdP5n81abHKpfq/5srq6OkVERDh/J47HyvnrNIFy6NAhLVmyRIMHD9amTZs0efJk/fjHP9aKFSskSYFAQJLafBKt1+t1xgKBgJKSkkLGo6OjlZCQEDLndPfx5WN83ZzW8Y6ydu1a1dbW6v7775f0j3XGxsa2+cOKX70m53q+wWBQX3zxhf72t7+pubnZmmsya9YsjRs3TkOGDFFMTIyGDRumadOmKTc3V9Kl+1jp1auX/H6/nnjiCVVVVam5uVkvvPCCSktLdfTo0Uv2urSy6fzPZi02uVS/17Q6deqUZs6cqfHjxzt/+I/HyvnrsI+6D1dLS4tGjhypJ598UpI0bNgwvfvuu1q6dKny8vI6eHV2eP755zVmzJiz+jPWXdlLL72klStXatWqVbr66qu1Z88eTZs2TcnJyZf8Y+V//ud/9MADD+iyyy5TVFSUhg8frvHjx6u8vLyjlwZ0So2NjbrnnntkjNGSJUs6ejldSqd5BqVfv35KS0sL2Td06FBVVlZKknw+nyS1edV4dXW1M+bz+VRTUxMy3tTUpGPHjoXMOd19fPkYXzendbwjfPTRR3rjjTf0b//2b84+n8+nhoYG1dbWhsz96jU51/N1u92Ki4tTnz59FBUVZc01mTFjhvMsSnp6uiZMmKDp06erqKhI0qX9WLniiiu0ZcsWnThxQkeOHNGOHTvU2NioQYMGXdLXRbLrcXE2a7HJpfq9pjVOPvroIxUXFzvPnkg8VtpDpwmUm2++WRUVFSH73n//ffXv31+SNHDgQPl8PpWUlDjjwWBQZWVl8vv9kiS/36/a2tqQ/1vcvHmzWlpalJGR4czZunWrGhsbnTnFxcW66qqr1Lt3b2fOl4/TOqf1OB1h2bJlSkpKUnZ2trNvxIgRiomJCVlrRUWFKisrQ67J3r17Q/4htf5Daw3CM51vbGysRowYETKnpaVFJSUlHXJN/v73vysyMvShHRUVpZaWFkk8ViSpR48e6tevnz7//HNt2rRJd9555yV/XWw6/7NZi00uxe81rXFy8OBBvfHGG0pMTAwZ57HSDjr6Vbpna8eOHSY6Otr84he/MAcPHjQrV6403bt3Ny+88IIzZ/78+SY+Pt784Q9/MH/961/NnXfeedq3CA4bNsyUlZWZt956ywwePDjkbV+1tbXG6/WaCRMmmHfffdesXr3adO/evc3bvqKjo82vfvUrc+DAATN37twOfetoc3OzSU1NNTNnzmwz9tBDD5nU1FSzefNms2vXLuP3+43f73fGW9/6N3r0aLNnzx6zceNG07dv39O+9W/GjBnmwIEDZtGiRad965/L5TLLly83+/fvN5MmTTLx8fEhr9i/WPLy8sxll13mvM345ZdfNn369DGPPPKIM+dSfaxs3LjRbNiwwRw6dMi8/vrr5rrrrjMZGRmmoaHBGNP1r8vx48fN7t27ze7du40k8+tf/9rs3r3beeeFTed/Nmu5WNfls88+M7t37zbr1683kszq1avN7t27zdGjR5376Grfa77pmjQ0NJjvf//75vLLLzd79uwJ+aiHL78jpys+Vi6mThMoxhjz6quvmmuuuca4XC4zZMgQ8+yzz4aMt7S0mMcee8x4vV7jcrnMbbfdZioqKkLmfPbZZ2b8+PGmZ8+exu12mx/96Efm+PHjIXPeeecdc8sttxiXy2Uuu+wyM3/+/DZreemll8y3vvUtExsba66++mqzfv369j/hs7Rp0yYjqc25GmPMF198Yf7jP/7D9O7d23Tv3t3867/+a8g3FWOM+fDDD82YMWNMXFyc6dOnj/nJT35iGhsbQ+a8+eab5vrrrzexsbFm0KBBZtmyZW2O9cwzz5jU1FQTGxtrbrzxRrN9+/Z2Pc+zFQwGzcMPP2xSU1NNt27dzKBBg8yjjz4a8o3jUn2svPjii2bQoEEmNjbW+Hw+k5+fb2pra53xrn5d3nzzTSOpzZaXl2eMsev8z2Yt7eVM12XZsmWnHZ87d65zH13te803XZPWt1ufbmv9DCpjuuZj5WKKMOZLH68JAABggU7zGhQAAHDpIFAAAIB1CBQAAGAdAgUAAFiHQAEAANYhUAAAgHUIFAAAYB0CBQAAWIdAAQAA1iFQAACAdQgUAABgHQIFAABY5/8AtnBrsWK6EVkAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "before patching, make another copy of the current HD lists\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "pre-patch avg use and its sd are 18.07843 1.67643\n"
     ]
    }
   ],
   "source": [
    "#Restart - may want to comment out first line\n",
    "#HDunitList = [latestHDlist[t].copy() for t in range(nHDs)]\n",
    "unitUse = [0. for u in range(nUnits) ]\n",
    "HDvPop = [np.sum([unitPop[u] for u in HDunitList[t] ]) for t in range(nHDs) ]\n",
    "\n",
    "for t in popHDlist:\n",
    "    for u in HDunitList[t]:\n",
    "        unitUse[u] += HDweight[t] * nDistricts\n",
    "plt.hist(unitUse, weights = unitPop,bins = 50)\n",
    "plt.show()\n",
    "plt.hist([HDvPop[t] for t in popHDlist], bins=50)\n",
    "plt.show()\n",
    "print(\"before patching, make another copy of the current HD lists\")\n",
    "latestHDlist = [HDunitList[t].copy() for t in range(nHDs)]   #More safekeeping\n",
    "latestHDpop, latestUnitUse = [0. for t in range(nHDs)], [0. for u in range(nUnits)]\n",
    "for u in range(nUnits):\n",
    "    if latestUnitUse[u] > 0.1:\n",
    "        latestUnitDistro.append(latestUnitUse[u])\n",
    "        latestUnitWeights.append(unitPop[u]/statePop)\n",
    "plt.hist(latestUnitDistro, weights=latestUnitWeights, bins = 20, histtype = \"step\")\n",
    "plt.show()\n",
    "latestAvg, latestSD = getWeightedAvgAndSD(latestUnitDistro, latestUnitWeights)\n",
    "print(\"pre-patch avg use and its sd are\",r5(latestAvg),r5(latestSD) )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 128,
   "id": "27b51cd0-8bb6-4b16-bb79-37498e59ce5c",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "We will now square up the 83 HDs with pop < 117772 to within 1171\n",
      "working on squaring up HD 1212 time is now 0\n",
      "We have addressed underpop in a total of 83 HDs\n",
      "Here is a scatterplot of original (x) to final pop (y)\n"
     ]
    },
    {
     "data": {
      "image/png": "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0Omwa/nMMZo8PC1GPYuMLrHuAAAA6BwmD0/TdZlOffzlERXuPSLJKOuiPho/MDXWXQs7AhYAAIiagjKXFqwt8236/PymvUpz2JWXk2mpUSymCAEAQFTkl1Zq9oodvnDl5XLXavaKHcovrYxRz8KPgAUAACKu3mP08OpdMk0c8762YG2Z6j1Nteh4CFgAACDint+4R9Un6wIeN5Iq3bUqqqiKXqciiIAFAAAiqt5j9PKH+4JqG2zV9/aOgAUAACKqqKJK1d8GHr06W7BV39s7AhYAAIioYEelkruz2TMAAEBQgh2VuuvyDMtUcydgAQCAiGppL0KpYfRqzjWDotanSCNgAQCAiGpuL0KvhTePsMzolUTAAgAAURBoL8I0h10vsBchAABA63j3IiyqqNLhY7Xq28uusRkplhq58iJgAQCAqImPsynLgps7n4spQgAAgDAjYAEAAIQZAQsAACDMCFgAAABhRsACAAAIs5AD1ubNm5WTk6P09HTZbDatWbPG7/jq1as1ceJEpaamymazqaSkpNE59u7dqx/96Ec677zzlJSUpGnTpunQoUN+bS688ELZbDa/x8KFC/3a7Ny5U1dccYXsdrv69++vxYsXN3qvVatWaciQIbLb7RoxYoTWr18f6kcGAAAIScgB68SJExo5cqSWLVsW8PiECRO0aNGigMcnTpwom82mjRs36sMPP9Tp06eVk5Mjj8fj1/Y3v/mNKisrfY8HHnjAd6ympkYTJ07UgAEDtH37di1ZskTz58/Xiy++6Gvz0Ucfafr06Zo1a5aKi4s1depUTZ06VaWlpaF+bAAAgOCZNpBk3nzzzSaPVVRUGEmmuLjY7/X33nvPxMXFGbfb7Xuturra2Gw2U1BQ4HttwIAB5plnngn43n/84x9N7969zalTp3yv5ebmmsGDB/ueT5s2zUyZMsXv58aNG2fuvffeID5dA7fbbST59RcAALRvsf7+jvoarFOnTslmsykxMdH3mt1uV1xcnLZs2eLXduHChUpNTdXo0aO1ZMkSnTlzxnessLBQV155pRISEnyvTZo0SeXl5Tp69KivTXZ2tt85J02apMLCwmb7V1NT4/cAAAAIRdQD1vjx49WjRw/l5ubq5MmTOnHihH75y1+qvr5elZWVvnY///nPtXLlSm3atEn33nuvnnrqKf3617/2HXe5XOrXr5/fub3P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n3/+uSTplltu0YkTJ7Ru3Trf+4wfP16jRo3SCy+8ENRnjHUdDQAAOpL80krNf3u3XDWnfK/17t5VN48+X9mZzqhtuRTr7++YrMG6/PLL9frrr6uqqkoej0crV65UbW2trrrqKklSYWGhkpOTfeFKkrKzsxUXF6etW7f62lx55ZW+cCVJkyZNUnl5uY4ePeprk52d7ffekyZNUmFhYcC+nTp1SjU1NX4PAADQsvzSSt23YodfuJKkoyfr9J8f7tP0lz7WhEUblV9aGaMeRk9MAtYbb7yhuro6paamKjExUffee6/efPNNDRo0SFLDGq2+ffv6/UyXLl2UkpIil8vla9OvXz+/Nt7nLbXxHm/K008/LYfD4Xv079+/bR8WAIBOoN5j9PDqXS22826fY/WQFZOA9fjjj6u6uloffPCBtm3bpnnz5mnatGnatavlf5hIe+SRR+R2u32PAwcOxLpLAAC0ex/vPaLqk3UttvOuS1qwtszSa7OiXsl97969ev7551VaWqphw4ZJkkaOHKm///3vWrZsmV544QU5nU4dPnzY7+fOnDmjqqoqOZ1OSZLT6dShQ4f82nift9TGe7wpiYmJSkxMbNuHBACgkyn88pug2567fY4VRX0E6+TJkw1vHOf/1vHx8fJ4PJKkrKwsVVdXa/v27b7jGzdulMfj0bhx43xtNm/erLq679JyQUGBBg8erN69e/vabNiwwe99CgoKlJWVFf4PBgBApxb6wnUrb58TcsA6fvy4SkpKfPWtKioqVFJSov3790tqqF9VUlKisrIySVJ5eblKSkp8656GDBmiQYMG6d5771VRUZH27t2rpUuXqqCgwHc34tChQzV58mTdfffdKioq0ocffqg5c+bo1ltvVXp6uiTptttuU0JCgmbNmqXdu3fr9ddf17PPPqt58+b5+jp37lzl5+dr6dKl+vzzzzV//nxt27ZNc+bMafUFAwAAjbVmJMrK2+eEXKbhr3/9q66++upGr99555165ZVX9Morr+iuu+5qdDwvL0/z58+XJO3Zs0cPP/ywtmzZouPHj2vQoEH65S9/6Ve2oaqqSnPmzNHatWsVFxenH//4x/rDH/6gnj17+trs3LlT999/vz755BP16dNHDzzwgHJzc/3ed9WqVXrssce0b98+XXzxxVq8eLFuuOGGoD9vrG/zBACgI6j3GF367wVB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3bubefPmmbKyMvPcc8+Z+Ph4k5+f72uzcuVKk5CQYP70pz+Z3bt3m7vvvtskJyebQ4cORe1ahOq3v/2tSU1NNevWrTMVFRVm1apVpmfPnubZZ5/1teH3LrBp06aZzMxM87e//c3s2bPH5OXlmaSkJPPPf/7TGMO1O9v69evNo48+alavXm0kmTfffNPveHu6VsH0JZpaunb//d//bRYsWGBeeuklI8kUFxc3Okdn/TvY3LWrrq422dnZ5vXXXzeff/65KSwsNGPHjjWXXnqp3zk62u8dAescubm5ZsKECQGPezwe43Q6zZIlS3yvVVdXm8TERPPaa68ZY4wpKyszkswnn3zia/Puu+8am81mvv76a2OMMX/84x9N7969zalTp/zee/Dgwb7n06ZNM1OmTPF7/3Hjxpl77723bR8ySubOnWsGDhxoPB6Pqa6uNl27djWrVq3yHf/ss8+MJFNYWGiMafgPMC4uzrhcLl+b5cuXm6SkJN91+vWvf22GDRvm9z633HKLmTRpku/52LFjzf333+97Xl9fb9LT083TTz8dkc8ZDlOmTDE//elP/V67+eabzYwZM4wx/N415+TJkyY+Pt6sW7fO7/UxY8aYRx99lGvXjHO/6NrTtQqmL7HUVMDyqqioaDJg8XewQXPXzquoqMhIMl999ZUxpmP+3jFFeI63335bl112mf7P//k/6tu3r0aPHq2XXnrJd7yiokIul0vZ2dm+1xwOh8aNG6fCwkJJUmFhoZKTk3XZZZf52mRnZysuLk5bt271tbnyyiuVkJDgazNp0iSVl5fr6NGjvjZnv4+3jfd92rPTp09rxYoV+ulPfyqbzabt27errq7O7/MMGTJEF1xwgd91GzFihPr16+drM2nSJNXU1Gj37t2+Ns1dk9OnT2v79u1+beLi4pSdnd2ur9vll1+uDRs26B//+Ick6dNPP9WWLVt0/fXXS+L3rjlnzpxRfX297Ha73+vdunXTli1buHYhaE/XKpi+dDT8HQye2+2WzWZTcnKypI75e0fAOseXX36p5cuX6+KLL9Z7772n2bNn6+c//7n+67/+S5Lkcrkkye+X3/vce8zlcqlv375+x7t06aKUlBS/Nk2d4+z3CNTGe7w9W7Nmjaqrq/WTn/xEUsNnSUhI8P3H4nXudWvtNampqdG3336rb775RvX19R3uuj388MO69dZbNWTIEHXt2lWjR4/Wgw8+qBkzZkji9645vXr1UlZWlp588kkdPHhQ9fX1WrFihQoLC1VZWcm1C0F7ulbB9KWj4e9gcGpra5Wbm6vp06f7Nm7uiL93XUJq3Ql4PB5ddtlleuqppyRJo0ePVmlpqV544QXdeeedMe5dx/Gf//mfuv7665Wenh7rrnQIb7zxhl599VX9+c9/1rBhw1RSUqIHH3xQ6enp/N4F4X/+53/005/+VOeff77i4+M1ZswYTZ8+Xdu3b4911wCEoK6uTtOmTZMxRsuXL491d9qEEaxzpKWlKTMz0++1oUOHav/+/ZIkp9MpSY3u+jh06JDvmNPp1OHDh/2OnzlzRlVVVX5tmjrH2e8RqI33eHv11Vdf6YMPPtDPfvYz32tOp1OnT59WdXW1X9tzr1trr0lSUpK6deumPn36KD4+vsNdt1/96le+UawRI0bo9ttv10MPPaSnn35aEr93LRk4cKD+9re/6fjx4zpw4ICKiopUV1eniy66iGsXgvZ0rYLpS0fD38HmecPVV199pYKCAt/oldQxf+8IWOf4wQ9+oPLycr/X/vGPf2jAgAGSpIyMDDmdTm3YsMF3vKamRlu3blVWVpYkKSsrS9XV1X7/63njxo3yeDwaN26cr83mzZtVV1fna1NQUKDBgwerd+/evjZnv4+3jfd92quXX35Zffv21ZQpU3yvXXrpperatavf5ykvL9f+/fv9rtuuXbv8/iPy/kfmDb0tXZOEhARdeumlfm08Ho82bNjQrq/byZMnFRfn/59jfHy8PB6PJH7vgtWjRw+lpaXp6NGjeu+993TTTTdx7ULQnq5VMH3paPg7GJg3XO3Zs0cffPCBUlNT/Y53yN+7kJbEdwJFRUWmS5cu5re//a3Zs2ePefXVV0337t3NihUrfG0WLlxokpOTzVtvvWV27txpbrrppiZvYx49erTZunWr2bJli7n44ov9bietrq42/fr1M7fffrspLS01K1euNN27d290O2mXLl3M7373O/PZZ5+ZvLy8dnfL97nq6+vNBRdcYHJzcxsdu++++8wFF1xgNm7caLZt22aysrJMVlaW77j39uSJEyeakpISk5+fb84777wmb0/+1a9+ZT777DOzbNmyJm9PTkxMNK+88oopKysz99xzj0lOTva7K6e9ufPOO83555/vK9OwevVq06dPH/PrX//a14bfu8Dy8/PNu+++a7788kvz/vvvm5EjR5px48aZ06dPG2O4dmc7duyYKS4uNsXFxUaS+f3vf2+Ki4t9d2u1p2sVTF+iqaVrd+TIEVNcXGzeeecdI8msXLnSFBcXm8rKSt85Ouvfweau3enTp82NN95ovve975mSkhK/cj9n3xHY0X7vCFhNWLt2rRk+fLhJTEw0Q4YMMS+++KLfcY/HYx5//HHTr18/k5iYaK699lpTXl7u1+bIkSNm+vTppmfPniYpKcncdddd5tixY35tPv30UzNhwgSTmJhozj//fLNw4cJGfXnjjTfMJZdcYhISEsywYcPMO++8E/4PHEbvvfeekdToehhjzLfffmv+7d/+zfTu3dt0797d/OhHP/L7w2OMMfv27TPXX3+96datm+nTp4/5xS9+Yerq6vzabNq0yYwaNcokJCSYiy66yLz88suN3uu5554zF1xwgUlISDBjx441H3/8cVg/Z7jV1NSYuXPnmgsuuMDY7XZz0UUXmUcffdTvjwu/d4G9/vrr5qKLLjIJCQnG6XSa+++/31RXV/uOc+2+s2nTJiOp0ePOO+80xrSvaxVMX6KppWv38ssvN3k8Ly/Pd47O+newuWvnLWvR1MNbR9GYjvd7ZzPmrFLRAAAAaDPWYAEAAIQZAQsAACDMCFgAAABhRsACAAAIMwIWAABAmBGwAAAAwoyABQAAEGYELAAAgDAjYAEAAIQZAQsAACDMCFgAAABhRsACAAAIs/8fcFgWMK0a7VUAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#SQUARING UP UNDERPOPPED\n",
    "HDnAddedUnits, HDaddedPop = [0]*nHDs, [0.]*nHDs\n",
    "underPoppedList = list()\n",
    "minDistrictPop, maxDistrictPop = 0.99 * aDP, 1.01 * aDP\n",
    "for t,pop in enumerate(HDvPop):\n",
    "    if pop < minDistrictPop and t in popHDlist:\n",
    "        underPoppedList.append(t)\n",
    "print(\"We will now square up the\",len(underPoppedList),\"HDs with pop <\",int(minDistrictPop),\"to within\",int(maxGap) )\n",
    "startTime = time.time()\n",
    "maxGap = 0.9 * np.median(unitPop) \n",
    "for ii,t in enumerate(underPoppedList):\n",
    "    if ii%100 == 0:\n",
    "        print(\"working on squaring up HD\",t,\"time is now\",int(time.time() - startTime)) \n",
    "    gap = aDP - HDvPop[t]\n",
    "    origGap = gap\n",
    "    nearHDlist, nearHDscore = list(), list()  #these will be dynamic lists of the nearby underused units\n",
    "    for u in HDunitList[t]:\n",
    "        for uu in unitNbrs[u]:\n",
    "            if uu not in HDunitList[t] and uu not in nearHDlist and unitPop[uu] < gap + maxGap:\n",
    "                nearHDlist.append(uu)   #below line: bias toward close, underused\n",
    "                nearHDscore.append((unitUse[uu]-1.) + unitCP[uu].distance(hdCP[t]) / avgDist[t] )  \n",
    "    currList = HDunitList[t].copy()\n",
    "    addedList = list()\n",
    "    stillGoing = True\n",
    "    while gap > maxGap and len(nearHDlist) > 0 and stillGoing:   #add the lowest-scoring neighboring underused unit until we've roughly squared the HDpop\n",
    "        idx, i, notYetPicked = np.argsort(nearHDscore), 0, True\n",
    "        while i < len(nearHDscore) and notYetPicked:        \n",
    "            listNo = idx[i]   #nearHDscore.index(np.min(nearHDscore))\n",
    "            unitNoToAdd = nearHDlist[listNo]  #add this unit ...\n",
    "            canAdd  = wontEnclave(unitNoToAdd, currList, unitNbrs, borderUnits)\n",
    "            if canAdd: \n",
    "                notYetPicked = False\n",
    "            else:\n",
    "                i +=1\n",
    "        if notYetPicked:\n",
    "            stillGoing = False  #can't add any more units without creating an enclave\n",
    "        else:\n",
    "            gap -= unitPop[unitNoToAdd]\n",
    "            addedList.append(unitNoToAdd)\n",
    "            currList.append( unitNoToAdd)\n",
    "            for uu in unitNbrs[unitNoToAdd]:             # ... and add its nonHD neighbors to future candidates\n",
    "                if uu not in currList and uu not in nearHDlist and unitPop[uu] < gap + maxGap:  \n",
    "                    nearHDlist.append(uu)\n",
    "                    nearHDscore.append((unitUse[uu]-1.) + unitCP[uu].distance(hdCP[t]) / avgDist[t] )  #bias toward close, underused\n",
    "            del nearHDscore[nearHDlist.index(unitNoToAdd)]        \n",
    "            del nearHDlist[ nearHDlist.index(unitNoToAdd) ]\n",
    "            for i, uu in enumerate(nearHDlist.copy()):\n",
    "                if unitPop[uu] > gap + maxGap:   #with the added pop from another unit, this unit is now too big to add\n",
    "                    del nearHDscore[nearHDlist.index(uu)]\n",
    "                    del nearHDlist[ nearHDlist.index(uu)]\n",
    "    for u in addedList:\n",
    "        unitUse[u] += HDweight[t] * nDistricts\n",
    "    HDunitList[t] += addedList\n",
    "    HDvPop[t]    = np.sum( [unitPop[u] for u in HDunitList[t] ] )\n",
    "    HDnAddedUnits[t] = len(addedList)\n",
    "    HDaddedPop[t] = np.sum( [unitPop[u] for u in addedList] )\n",
    "    if HDvPop[t] > maxDistrictPop:\n",
    "        print(\"Oops! HD\",t,\"now has overshot pop =\",int(HDvPop[t]),\"not\",int(aDP),\"after adding\",HDaddedPop[t] )\n",
    "print(\"We have addressed underpop in a total of\",len(underPoppedList),\"HDs\")\n",
    "print(\"Here is a scatterplot of original (x) to final pop (y)\")\n",
    "plt.scatter([HDvPop[t] - HDaddedPop[t] for t in underPoppedList], [HDvPop[t] for t in underPoppedList])\n",
    "plt.axhline(y=aDP, xmin = 0.9*aDP, xmax = 1.1*aDP, ls=\"--\")\n",
    "plt.axvline(x=aDP, ymin = 0.9*aDP, ymax = 1.1*aDP, ls=\"--\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 129,
   "id": "bc01409d-d9e4-43a6-9fae-c76aa7bdc855",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "previous unit avg and sd usage are 18.07843 1.67643\n",
      "amped unit avg and sd usage are 1.00647 0.09265\n"
     ]
    },
    {
     "data": {
      "image/png": "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Y/fFDz/8IL766itx/vx5sW/fPvHII4+I0NBQUVpa6qRPYBtXr14Vx48fF8ePHxcAxIcffiiOHz8ufvvtNyGEEDNnzhTPPfecqf6XX34RHh4eYvr06eLMmTNi5cqVwtXVVezYscNZH8EmGrsfhBCm+v79+4uxY8eK48ePi1OnTjmjfZtq7L5Yt26daNeunVi5cqX4/fffTS+tVuusj2ATjd0PH330kfjmm2/E2bNnxdmzZ8Unn3wi2rdvL954441GbZehyclWrFghunTpIuRyuYiMjBQ//PCDaSwmJkaMHz/erP7gwYMiKipKKBQKcffdd4t33nlHXLt2zcFd215j98PPP/8sAIjvv//ewZ3aV2P2g9FoFPPnzxfdunUTSqVShISEiL/+9a8tPijUa8y+2LNnj+jVq5dQKBSiQ4cO4rnnnhMFBQVO6Nq2du/eLQDc8qr/7OPHjxcxMTG3vCciIkLI5XJx9913i88//9zhfdtaU/aDpfquXbs6vHdba+y+iImJabC+pWrsfli+fLno3bu38PDwECqVStx3333i448/FjU1NY3arkyIFnwcn4iIiMhBeE0TERERkQQMTUREREQSMDQRERERScDQRERERCQBQxMRERGRBAxNRERERBIwNBERERFJwNBEREREJAFDExEREZEEDE1EREREEjA0EREREUnA0EREREQkwf8HFaovn1RtxAYAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "prevUnitUse = [0.]*nUnits\n",
    "for t in popHDlist:\n",
    "    for u in latestHDlist[t]:\n",
    "        prevUnitUse[u] += HDweight[t] * nDistricts\n",
    "\n",
    "ampedUnitUse = [0. for u in range(nUnits)]\n",
    "ampedHDlist = [HDunitList[t].copy() for t in range(nHDs)]\n",
    "ampedHDpop = [HDvPop[t] for t in range(nHDs) ]\n",
    "for t in popHDlist:\n",
    "    for u in ampedHDlist[t]:\n",
    "        ampedUnitUse[u] += HDweight[t] * nDistricts   #KISS - recalc these\n",
    "plt.hist(prevUnitUse,bins=50,weights=unitPop,label=\"previous\",histtype=\"step\")\n",
    "plt.hist(ampedUnitUse, bins=50, weights=unitPop,label=\"amped\",histtype=\"step\")\n",
    "plt.legend()\n",
    "ampedUnitUseAvg, ampedUnitUseSD = getWeightedAvgAndSD(ampedUnitUse,unitPop)\n",
    "print(\"previous unit avg and sd usage are\",r5(latestAvg), r5(latestSD) )\n",
    "print(\"amped unit avg and sd usage are\",r5(ampedUnitUseAvg), r5(ampedUnitUseSD) )\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 130,
   "id": "ee512b2b-4daa-4a6b-9452-e8dfdfdebc88",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "the current barredJettisonSet (usually CCB's) is set()\n"
     ]
    }
   ],
   "source": [
    "#CHECK ON BARRED JETTISON SET BEFORE RUNNING BELOW\n",
    "print(\"the current barredJettisonSet (usually CCB's) is\",barredJettisonSet)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 131,
   "id": "dd7d9818-344c-4150-917b-57a4ee051c92",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Continuing with narrowing the distro.  This loop: remove overused units from overpopped HDs\n",
      "Let's now square down the 499 overPopped HDs to within 1171\n",
      "working on squaring down HD 1190 time is now 0\n",
      "working on squaring down HD 6938 time is now 0\n",
      "working on squaring down HD 7369 time is now 2\n",
      "We have addressed overpop in a total of 499 HDs\n",
      "Here is a scatterplot of original to final pop\n"
     ]
    },
    {
     "data": {
      "image/png": "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FJdj8dbjsNZoB1auy1RGLomI7ojypoBkoJecImEJKRiTuYkosugOhO655x7cc889qo8/+OCDAICysjLVY/bv3481a9Zg6NChAIDnnnsOK1aswOHDh50Cofbt28NisSie45133kFDQwPefPNNREdH4+abb0ZRURFee+01eyC0cuVK5OTk4OmnnwYALFmyBHl5eVi1ahXWrl2r63UbpeCrC0LH5dzcBR8dP9+qaKAnNgnutJKpJeHqWdJTG6iNXBIRGUS9CWaCYcmJS0hERL4VkByhW2+9Fe+++y7Gjx+PpKQkvPfee6irq8Mdd9zhdNyyZcuwZMkSdO/eHdOmTcPcuXPRtm3LJRcUFGDUqFGIjo62Hz927FgsX74clZWVSE5ORkFBAebNm+d0zrFjx7ZazvOnkn/XCh13ua7JkCBIQktBw5T4aFTWNuhaInIMIvQu6bkbqP1Z38aTYCbYdi0Faz0gIqJwEJBA6L333sP999+PDh06oG3btoiLi8OmTZvQq1cv+zE///nPMXjwYKSkpGD//v1YsGABysvL8dprrwFoyTNKT093Om+XLl3sjyUnJ8Nqtdq/53iM1WpVvbb6+nrU19fbv66pqfH69cqabRIOfCVWhHCvjmKFIiYPTMNb+8pU21UocQwiDnwltqT3xJ03YGSvTpoDtb+WRPS2NAnWJScuIRER+UZAWmwsWrQIVVVV2LlzJz799FPMmzcPU6ZMwWefXZtxmDdvHu644w70798fjz32GF599VW8/vrrTkGKLyxduhSJiYn2/7p162bYuQ+VVqDST/lBru7q20UxwViJUhKuaBVpE0wBSSxWo7elSTC0oCAiIv/x+4xQSUkJVq1aheLiYtx8880AgAEDBuDjjz/G6tWrVXN3hg0bhqamJpSVlaF3796wWCw4f/680zHy13JekdoxanlHALBgwQKn5bSamhrDgiGjk2+vi2mD62KihBKXn3qvCIsn3oy980fjUGkFdh634s/7ylodpz4jIjqPZEQrWWOp5dmkJsZi0fgMJMdHB/WSk56Gq0REpI/fA6ErV64AAMxm58moNm3awGazqf5cUVERzGYzOnfuDADIysrCwoUL0djYiKioKABAXl4eevfujeTkZPsxu3btwpNPPmk/T15eHrKyslSfJyYmBjExMR69Ni1GJ9/ef0s3PDs+A6vyT2m2zDj//Q4y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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#SQUARING DOWN\n",
    "print(\"Continuing with narrowing the distro.  This loop: remove overused units from overpopped HDs\")\n",
    "#HDunitList = [ampedHDlist[t].copy() for t in range(nHDs)]\n",
    "#HDvPop =     [ampedHDpop[t]         for t in range(nHDs)]\n",
    "#unitUse =    [ampedUnitUse[u]       for u in range(nUnits)] #saving in case I need to re-run\n",
    "HDnShedUnits = [0]*nHDs\n",
    "overPoppedList = list()\n",
    "startTime = time.time()\n",
    "for t,pop in enumerate(HDvPop):\n",
    "    if pop > maxDistrictPop and t in popHDlist:\n",
    "        overPoppedList.append(t)\n",
    "\n",
    "maxGap = 0.9 * np.median(unitPop)   \n",
    "print(\"Let's now square down the\",len(overPoppedList),\"overPopped HDs to within\", int(maxGap))   \n",
    "for ii,t in enumerate(overPoppedList):\n",
    "    if ii%200 == 0:\n",
    "        print(\"working on squaring down HD\",t,\"time is now\",int(time.time()-startTime))\n",
    "    unbroken, noEnclave, sPL, ePL = enclaveCheck(HDunitList[t],unitNbrs)\n",
    "    if not (unbroken and noEnclave):\n",
    "        print(\"SKIPPING shedding attempt on overpopped HD\",t,\"with pop\",HDvPop[t],\"because it was not legal to start\")\n",
    "    else:\n",
    "        #avgDist = np.sum([unitPop[u]*unitCP[u].distance(hdCP[t]) for u in HDunitList[t] ]) / HDvPop[t]\n",
    "        excess = HDvPop[t] - aDP\n",
    "        origExcess = excess\n",
    "        HDboundaryList, HDboundaryScore = list(), list()  #these will be dynamic lists of the overused border units to jettison\n",
    "        distList = [hdCP[t].distance(unitCP[u]) for u in HDunitList[t] ]\n",
    "        starterU = HDunitList[t][distList.index(np.min(distList))]\n",
    "        barredSet = barredJettisonSet  #new 4/10/24 for MN, ban CCB jettisoning from ALL HD's, not just near ones\n",
    "        #barredSet = set(get2nbrs([starterU],unitNbrs)).union(barredJettisonSet)  #weaker specification - must be close to be barred\n",
    "\n",
    "        for u in set(HDunitList[t]).difference(barredSet):\n",
    "            isBoundary = False\n",
    "            for uu in unitNbrs[u]:\n",
    "                if uu not in HDunitList[t]:\n",
    "                    isBoundary = True\n",
    "                    break\n",
    "            if isBoundary and HDvPop[t] - unitPop[u] > aDP - maxGap:  #shedding this unit won't send us too far under targetpop\n",
    "                HDboundaryList.append(u)\n",
    "                HDboundaryScore.append((1. - unitUse[u]) - unitCP[u].distance(hdCP[t]) / avgDist[t])  #low-score = bias toward far, overused\n",
    "        currList = HDunitList[t].copy()\n",
    "        shedList, stillGoing = list(), True\n",
    "        while excess > maxGap and len(HDboundaryList) > 0 and stillGoing:   #shed the highest-scoring neighboring overused unit until we've roughly squared the HDpop\n",
    "            idx, i, notYetPicked = np.argsort(HDboundaryScore), 0, True\n",
    "            while i < len(HDboundaryScore) and notYetPicked and stillGoing:        \n",
    "                listNo = idx[i]   #low (large negative) score is preferred to shed\n",
    "                unitNoToShed = HDboundaryList[listNo]  # attempt to shed this unit ...\n",
    "                tryList = list(set(currList).difference( {unitNoToShed} ) )\n",
    "                unbroken, noEnclave, sPL, ePL = enclaveCheck(tryList,unitNbrs) \n",
    "                if unbroken and noEnclave:             #... if that won't eff up contiguity\n",
    "                    notYetPicked = False\n",
    "                else:\n",
    "                    i +=1\n",
    "            if notYetPicked:\n",
    "                stillGoing = False  #can't drop any more units without creating an enclave\n",
    "                print(\"can't drop any more units to HD\",t,\"without creating an enclave\")\n",
    "            else: #add this eligible unit\n",
    "                shedList.append(unitNoToShed)\n",
    "                excess -= unitPop[unitNoToShed]        \n",
    "                del currList[currList.index(unitNoToShed) ]\n",
    "                del HDboundaryList[listNo]\n",
    "                del HDboundaryScore[listNo]\n",
    "                for u in unitNbrs[unitNoToShed]:      # ... and ID any neighboring units that will now be on boundary after we shed this unit\n",
    "                    if u in currList and u not in HDboundaryList and (unitPop[u] <= excess + maxGap and\n",
    "                                                                      u not in barredSet): \n",
    "                        HDboundaryList.append(u)\n",
    "                        HDboundaryScore.append( (1. - unitUse[u]) - unitCP[u].distance(hdCP[t]) / avgDist[t] )  #low-score, bias toward far & overused       \n",
    "                for uu in HDboundaryList.copy():\n",
    "                    if unitPop[uu] > excess + maxGap:  #checking to see if the latest pop change DQ's any large units on current boundary\n",
    "                        del HDboundaryScore[HDboundaryList.index(uu)]\n",
    "                        del HDboundaryList[HDboundaryList.index(uu)]   \n",
    "        for u in shedList:\n",
    "            unitUse[u] -= HDweight[t] * nDistricts\n",
    "        HDunitList[t], HDvPop[t] = currList.copy(), np.sum( [unitPop[u] for u in currList ] )    \n",
    "        if HDvPop[t] < minDistrictPop:\n",
    "            print(\"Oops! HD\",t,\"now has undershot pop =\",int(HDvPop[t]),\"not\",int(aDP),\"after shedding\",\n",
    "                 np.sum([unitPop[u] for u in shedList]) )\n",
    "\n",
    "        HDnShedUnits[t] = -1 * len(shedList)\n",
    "\n",
    "print(\"We have addressed overpop in a total of\",len(overPoppedList),\"HDs\")\n",
    "print(\"Here is a scatterplot of original to final pop\")\n",
    "plt.scatter([ampedHDpop[t] for t in overPoppedList], [HDvPop[t] for t in overPoppedList])\n",
    "plt.axhline(aDP, 0.9*aDP, 1.1*aDP, ls=\"--\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5c4c929d-0208-4785-aa15-5681a493a530",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 132,
   "id": "9a19b23e-43cc-4609-9ee7-6d1057a7a9e1",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Here are the stats prior to any equi-pop patching\n",
      "amped unit avg and sd usage are 1.00647 0.09265\n",
      "shed unit avg and sd usage are 1.00105 0.09076\n"
     ]
    },
    {
     "data": {
      "image/png": "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oq6r/LohMD25GfDs13Q9r1IQURswNBFR1+fZD/ALsXUriKiT45QDRERERBIwNBERERFJwNBEREREJAFDExEREZEEDE1EREREEpg9NNXV1eGtt95CYGAgVCoV7rzzTqxYsQKCIIg1giAgISEBvr6+UKlUiIiIwI8//mi0nRs3bmDatGlwcXGBWq1GdHQ0dDqdUc3333+P+++/H0qlEgEBAVi9enWT9uzcuRMDBgyAUqlEcHAw9u3bZ+5DJiIiom7A7KHp3XffxYcffoiNGzfi4sWLePfdd7F69Wps2LBBrFm9ejXWr1+PlJQUnDhxAk5OToiMjERlZaVYM23aNJw/fx4HDhzA3r17kZGRgVmzZonrtVotxo0bhz59+iArKwvvvfceli5dik2bNok1x44dw5QpUxAdHY0zZ85gwoQJmDBhAs6dO2fuwyYiIqIuzuyh6dixY3j88ccRFRWF22+/HU899RTGjRuHkydPAjBcZUpMTMTixYvx+OOP46677sLf/vY3XL16FXv27AEAXLx4EWlpafjoo48QGhqK0aNHY8OGDdi+fTuuXr0KANi6dSuqq6vxySefYPDgwZg8eTJeffVVrF27VmxLUlISxo8fj/nz52PgwIFYsWIF7r77bmzcuNHch01ERERdnNlD03333Yf09HRcumS4I/V//vMfHD16FI888ggA4PLlyygoKEBERIT4GldXV4SGhiIzMxMAkJmZCbVajREjRog1ERERsLOzw4kTJ8SaBx54AHK5XKyJjIxETk4OSkpKxJqG+6mvqd9PY1VVVdBqtUYPIiIiIsACM4IvXLgQWq0WAwYMgL29Perq6vDOO+9g2rRpAICCggIAgLe3t9HrvL29xXUFBQXw8vIybmiPHnB3dzeqCQwMbLKN+nVubm4oKChocT+NrVq1CsuWLWvPYRMREVEXZ/YrTZ9//jm2bt2Kbdu24fTp0/jrX/+K999/H3/961/NvSuzW7RoEUpLS8VHXl6erZtEREREHYTZrzTNnz8fCxcuxOTJkwEAwcHB+OWXX7Bq1SpMnz4dPj4+AIDCwkL4+vqKryssLERISAgAwMfHB0VFRUbbra2txY0bN8TX+/j4oLCw0Kim/nlrNfXrG1MoFFAoFO05bCIiIurizH6lqby8HHZ2xpu1t7eHXq8HAAQGBsLHxwfp6enieq1WixMnTiAsLAwA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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "and here are the final populations\n"
     ]
    },
    {
     "data": {
      "image/png": "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sIZLLv0oNcl5DaD9IqAAsEZSQqzemXFztMsAYAECCgCgzYjk1VLcDdgunIMCAACsQ0ABYI36pmbd/uhm3f7oZtU3cat7oD3jEA8AawSN0Qf/63deA2i/mEEBAADWIaAAAADrEFAAAIB1OAcFAIAI4tLoH4YZFAAAYB1mUABYJS05IdolALAAAQWANTokxGl74S+jXQYAC3CIBwAAWIeAAgAArMMhHgDWqG9q1rint6p8/5FolwIgyphBAWCNoDGEEwCSCCgAAMBCHOIBLnDcJApAW8QMCgAAsA4BBQAAWIeAAgAArENAAWCVpPjYaJcAwAIEFADW6JAQp90P3BrtMgBYgIACAACsw2XGAAAospfk49wxgwLAGvVNzRq/fGu0ywBgAQIKAGsEjdHbe/4b7TIAWICAAgAArENAAQAA1iGgAAAA6xBQAACAdQgoAADAOgQUAABgHW7UBsAaHRLidKB4MDfMaiWMM2zGDAoAALAOAQUAAFgn7AGlublZhYWFysrKUlJSkn7yk5/ogQcekDHGaWOM0cyZM5Wenq6kpCTl5uZq79694S4FQBtT39SsPz5XEe0yAFgg7AFl7ty5WrZsmR599FHt3r1bc+fO1bx587RkyRKnzbx587R48WKVlJSovLxcycnJysvLU319fbjLAdCGBI3Rv3ZWR7sMABYI+0myW7Zs0dChQzV48GBJUteuXfXCCy9o69ZvHwBmjNGiRYt03333aejQoZKkFStWyOv1as2aNRo1alS4SwIAAG1M2GdQBgwYoNLSUn3yySeSpPfff1+bN2/WbbfdJknav3+/qqurlZub67zH4/EoOztbZWVlLfbZ0NCgQCAQsgAAgAtX2GdQZsyYoUAgoB49eig2NlbNzc166KGHNGbMGElSdfW307derzfkfV6v19n2XUVFRZo9e3a4SwUAAJYK+wzKSy+9pOeee07PP/+8tm/frmeffVbz58/Xs88++4P7LCgokN/vd5aqqqowVgwAAGwT9hmUv/71r5oxY4ZzLkmvXr302WefqaioSOPGjZPP55Mk1dTUKD093XlfTU2N+vTp02Kfbrdbbrc73KUCAABLhX0G5fjx44qJCe02NjZWwWBQkpSVlSWfz6fS0lJneyAQUHl5uXJycsJdDgAAaIPCHlCGDBmihx56SGvXrtWBAwe0evVqLViwQHfccYckyeVyaerUqXrwwQf16quvaufOnRo7dqwyMjI0bNiwcJcDoA1Jio/VR/fnRbsMABYI+yGeJUuWqLCwUH/84x91+PBhZWRkaNKkSZo5c6bTZtq0aaqrq9PEiRNVW1urgQMHat26dUpMTAx3OQDaEJfLpQ4JPCIMgOQy//cWr21EIBCQx+OR3+9XSkpKtMsBrBbJB8IdKB4ckX55iB1wdiL1dzBSzuX3N8/iAWCNhhPN+vNL70e7DAAWIKAAsEZz0Oif2/832mUAsAABBQAAWIeAAgAArENAAQAA1iGgAAAA63DDAQAA2qi2eBuBs8UMCgAAsA4BBYA1kuJjVXFfbrTLAGABAgoAa7hcLnW+iCeXAyCgAAAAC3GSLABrNJxo1oOv7452GQAswAwKAGs0B43+/u5n0S4DgAUIKAAAwDoEFAAAYB0CCgAAsA4BBQAAWIeAAgAArENAAQAA1iGgALBGYlys/j3tF9EuA4AFCCgArBET41JmWodolwHAAgQUAABgHW51D+AH6zpjbbRLAHCBYgYFAABYh4ACAACsQ0ABAADWIaAAAADrEFAAAIB1CCgAAMA6BBQAAGAdAgoAALAOAQUAAFiHO8kC5yBSd049UDw4Iv0CQFvFDAoAALAOAQUAAFiHgAIAAKxDQAEAANYhoAAAAOsQUAAAgHUIKAAAwDoEFAAAYB0CCgAAsA4BBQAAWIeAAgAArENAAQAA1iGgAAAA6xBQAACAdQgoAADAOgQUAABgHQIKAACwDgEFAABYh4ACAACsQ0ABAADWiUhA+eKLL/Tb3/5WnTt3VlJSknr16qX33nvP2W6M0cyZM5Wenq6kpCTl5uZq7969kSgFAAC0QWEPKF9//bWuv/56xcfH64033tBHH32kRx55RJ06dXLazJs3T4sXL1ZJSYnKy8uVnJysvLw81dfXh7scAADQBsWFu8O5c+cqMzNTy5cvd9ZlZWU5r40xWrRoke677z4NHTpUkrRixQp5vV6tWbNGo0aNCndJAACgjQn7DMqrr76q/v3769e//rW6dOmivn376sknn3S279+/X9XV1crNzXXWeTweZWdnq6ysLNzlAACANijsAeU///mPli1bpm7duunNN9/UH/7wB91zzz169tlnJUnV1dWSJK/XG/I+r9frbPuuhoYGBQKBkAUAAFy4wn6IJxgMqn///pozZ44kqW/fvtq1a5dKSko0bty4H9RnUVGRZs+eHc4yAat0nbE22iUAgFXCPoOSnp6uK6+8MmRdz5499fnnn0uSfD6fJKmmpiakTU1NjbPtuwoKCuT3+52lqqoq3GUDAACLhD2gXH/99dqzZ0/Iuk8++USXX365pG9PmPX5fCotLXW2BwIBlZeXKycnp8U+3W63UlJSQhYAAHDhCvshnnvvvVcDBgzQnDlzNHLkSG3dulVPPPGEnnjiCUmSy+XS1KlT9eCDD6pbt27KyspSYWGhMjIyNGzYsHCXAwAA2qCwB5Sf/exnWr16tQoKCnT//fcrKytLixYt0pgxY5w206ZNU11dnSZOnKja2loNHDhQ69atU2JiYrjLAQAAbZDLGGOiXcS5CgQC8ng88vv9HO5Bq+JkVgDtxYHiwWHv81x+f/MsHgAAYB0CCgAAsA4BBQAAWIeAAgAArENAAQAA1iGgAAAA6xBQAACAdQgoAADAOgQUAABgHQIKAACwDgEFAABYh4ACAACsQ0ABAADWIaAAAADrEFAAAIB1CCgAAMA6BBQAAGAdAgoAALAOAQUAAFiHgAIAAKxDQAEAANYhoAAAAOsQUAAAgHXiol0AEG5dZ6yNdgkAgPPEDAoAALAOAQUAAFiHQzw4LQ6XAACigRkUAABgHQIKAACwDgEFAABYh4ACAACsQ0ABAADWIaAAAADrEFAAAIB1CCgAAMA6BBQAAGAdAgoAALAOAQUAAFiHgAIAAKxDQAEAANYhoAAAAOsQUAAAgHUIKAAAwDoEFAAAYB0CCgAAsA4BBQAAWIeAAgAArENAAQAA1iGgAAAA6xBQAACAdQgoAADAOgQUAABgHQIKAACwDgEFAABYJ+IBpbi4WC6XS1OnTnXW1dfXa/LkyercubMuuugijRgxQjU1NZEuBQAAtBERDSjbtm3T448/rmuuuSZk/b333qvXXntNq1at0saNG3Xw4EENHz48kqUAAIA2JGIB5dixYxozZoyefPJJderUyVnv9/v11FNPacGCBbr55pt17bXXavny5dqyZYvefffdSJUDAADakIgFlMmTJ2vw4MHKzc0NWV9RUaGmpqaQ9T169NBll12msrKyFvtqaGhQIBAIWQAAwIUrLhKdrly5Utu3b9e2bdtO2VZdXa2EhASlpqaGrPd6vaqurm6xv6KiIs2ePTsSpQIAAAuFfQalqqpKf/rTn/Tcc88pMTExLH0WFBTI7/c7S1VVVVj6BQAAdgp7QKmoqNDhw4fVr18/xcXFKS4uThs3btTixYsVFxcnr9erxsZG1dbWhryvpqZGPp+vxT7dbrdSUlJCFgAAcOEK+yGeW265RTt37gxZN378ePXo0UPTp09XZmam4uPjVVpaqhEjRkiS9uzZo88//1w5OTnhLgcAALRBYQ8oHTt21NVXXx2yLjk5WZ07d3bWT5gwQfn5+UpLS1NKSoruvvtu5eTk6Lrrrgt3OQAAoA2KyEmyZ7Jw4ULFxMRoxIgRamhoUF5enh577LFolAIAACzkMsaYaBdxrgKBgDwej/x+P+ejRFjXGWujXQIAIAoOFA8Oe5/n8vubZ/EAAADrEFAAAIB1CCgAAMA6UTlJFuHHuSIAgAsJMygAAMA6BBQAAGAdAgoAALAOAQUAAFiHgAIAAKxDQAEAANYhoAAAAOsQUAAAgHUIKAAAwDoEFAAAYB0CCgAAsA4BBQAAWIeHBbYgUg/eO1A8OCL9AgBwoWEGBQAAWIeAAgAArENAAQAA1iGgAAAA6xBQAACAdQgoAADAOgQUAABgHQIKAACwDgEFAABYh4ACAACsQ0ABAADWIaAAAADrEFAAAIB1CCgAAMA6BBQAAGAdAgoAALAOAQUAAFiHgAIAAKxDQAEAANYhoAAAAOsQUAAAgHUIKAAAwDoEFAAAYB0CCgAAsA4BBQAAWIeAAgAArENAAQAA1iGgAAAA6xBQAACAdQgoAADAOgQUAABgHQIKAACwDgEFAABYh4ACAACsQ0ABAADWIaAAAADrEFAAAIB14sLdYVFRkV5++WV9/PHHSkpK0oABAzR37lx1797daVNfX68///nPWrlypRoaGpSXl6fHHntMXq833OVYpeuMtdEuAQCANiHsMygbN27U5MmT9e6772r9+vVqamrSoEGDVFdX57S599579dprr2nVqlXauHGjDh48qOHDh4e7FAAA0EaFfQZl3bp1IT8/88wz6tKliyoqKnTjjTfK7/frqaee0vPPP6+bb75ZkrR8+XL17NlT7777rq677rpwlwQAANqYiJ+D4vf7JUlpaWmSpIqKCjU1NSk3N9dp06NHD1122WUqKytrsY+GhgYFAoGQBQAAXLgiGlCCwaCmTp2q66+/XldffbUkqbq6WgkJCUpNTQ1p6/V6VV1d3WI/RUVF8ng8zpKZmRnJsgEAQJRFNKBMnjxZu3bt0sqVK8+rn4KCAvn9fmepqqoKU4UAAMBGYT8H5aQpU6bo9ddf16ZNm3TppZc6630+nxobG1VbWxsyi1JTUyOfz9diX263W263O1KlAgAAy4R9BsUYoylTpmj16tXasGGDsrKyQrZfe+21io+PV2lpqbNuz549+vzzz5WTkxPucgAAQBsU9hmUyZMn6/nnn9crr7yijh07OueVeDweJSUlyePxaMKECcrPz1daWppSUlJ09913Kycnhyt4AACApAgElGXLlkmSbrrpppD1y5cv1+9+9ztJ0sKFCxUTE6MRI0aE3KgNAABAikBAMcacsU1iYqKWLl2qpUuXhvvjAQDABYBn8QAAAOsQUAAAgHUIKAAAwDoEFAAAYB0CCgAAsA4BBQAAWIeAAgAArENAAQAA1iGgAAAA6xBQAACAdQgoAADAOgQUAABgHQIKAACwDgEFAABYh4ACAACsQ0ABAADWIaAAAADrEFAAAIB1CCgAAMA6BBQAAGAdAgoAALAOAQUAAFiHgAIAAKxDQAEAANYhoAAAAOsQUAAAgHUIKAAAwDoEFAAAYB0CCgAAsA4BBQAAWIeAAgAArENAAQAA1iGgAAAA6xBQAACAdQgoAADAOgQUAABgHQIKAACwDgEFAABYh4ACAACsQ0ABAADWIaAAAADrEFAAAIB1CCgAAMA6BBQAAGAdAgoAALAOAQUAAFiHgAIAAKxDQAEAANYhoAAAAOsQUAAAgHUIKAAAwDoEFAAAYB0CCgAAsE5UA8rSpUvVtWtXJSYmKjs7W1u3bo1mOQAAwBJRCygvvvii8vPzNWvWLG3fvl29e/dWXl6eDh8+HK2SAACAJaIWUBYsWKC77rpL48eP15VXXqmSkhJ16NBBTz/9dLRKAgAAloiLxoc2NjaqoqJCBQUFzrqYmBjl5uaqrKzslPYNDQ1qaGhwfvb7/ZKkQCAQkfqCDccj0i8AAG1FJH7HnuzTGHPGtlEJKF9++aWam5vl9XpD1nu9Xn388centC8qKtLs2bNPWZ+ZmRmxGgEAaM88iyLX99GjR+XxeE7bJioB5VwVFBQoPz/f+TkYDOrIkSPq3LmzXC5XFCuLrkAgoMzMTFVVVSklJSXa5bQrjH10MO7Rw9hHz4U09sYYHT16VBkZGWdsG5WAcvHFFys2NlY1NTUh62tqauTz+U5p73a75Xa7Q9alpqZGssQ2JSUlpc3vtG0VYx8djHv0MPbRc6GM/ZlmTk6KykmyCQkJuvbaa1VaWuqsCwaDKi0tVU5OTjRKAgAAFonaIZ78/HyNGzdO/fv3189//nMtWrRIdXV1Gj9+fLRKAgAAlohaQPnNb36j//73v5o5c6aqq6vVp08frVu37pQTZ/H93G63Zs2adcrhL0QeYx8djHv0MPbR017H3mXO5lofAACAVsSzeAAAgHUIKAAAwDoEFAAAYB0CCgAAsA4BJYI2bdqkIUOGKCMjQy6XS2vWrAnZ/vLLL2vQoEHOHXF37NhxSh/V1dW688475fP5lJycrH79+umf//xnSJsjR45ozJgxSklJUWpqqiZMmKBjx46FtPnggw90ww03KDExUZmZmZo3b94pn7Vq1Sr16NFDiYmJ6tWrl/71r3+d9xhES2uNfdeuXeVyuUKW4uLikDaM/ZqQ7Wcz9vv27dMdd9yhSy65RCkpKRo5cuQpN3Zkvz9Va409+/2pTjf2TU1Nmj59unr16qXk5GRlZGRo7NixOnjwYEgfrbVPG2M0c+ZMpaenKykpSbm5udq7d2/4BiNMCCgRVFdXp969e2vp0qXfu33gwIGaO3fu9/YxduxY7dmzR6+++qp27typ4cOHa+TIkaqsrHTajBkzRh9++KHWr1+v119/XZs2bdLEiROd7YFAQIMGDdLll1+uiooKPfzww/rb3/6mJ554wmmzZcsWjR49WhMmTFBlZaWGDRumYcOGadeuXWEYidbXWmMvSffff78OHTrkLHfffbezjbFvefvpxr6urk6DBg2Sy+XShg0b9M4776ixsVFDhgxRMBh02rHfn6q1xl5iv/+u04398ePHtX37dhUWFmr79u16+eWXtWfPHt1+++0h7Vprn543b54WL16skpISlZeXKzk5WXl5eaqvr4/AyJwHg1YhyaxevbrFbfv37zeSTGVl5SnbkpOTzYoVK0LWpaWlmSeffNIYY8xHH31kJJlt27Y529944w3jcrnMF198YYwx5rHHHjOdOnUyDQ0NTpvp06eb7t27Oz+PHDnSDB48OORzsrOzzaRJk87pe9ooUmNvjDGXX365Wbhw4fd+NmN/7mP/5ptvmpiYGOP3+511tbW1xuVymfXr1xtj2O/PRqTG3hj2+zM53diftHXrViPJfPbZZ8aY1tung8Gg8fl85uGHH3a219bWGrfbbV544YUf9oUjhBkUyw0YMEAvvviijhw5omAwqJUrV6q+vl433XSTJKmsrEypqanq37+/857c3FzFxMSovLzcaXPjjTcqISHBaZOXl6c9e/bo66+/dtrk5uaGfHZeXp7Kysoi/A3tdaaxP6m4uFidO3dW37599fDDD+vEiRPONsb+3DU0NMjlcoXclCoxMVExMTHavHmzJPb7SDmbsT+J/f78+P1+uVwu57lyrbVP79+/X9XV1SFtPB6PsrOzrRt7AorlXnrpJTU1Nalz585yu92aNGmSVq9erSuuuELSt+dJdOnSJeQ9cXFxSktLU3V1tdPmu3foPfnzmdqc3N4enWnsJemee+7RypUr9fbbb2vSpEmaM2eOpk2b5mxn7M/dddddp+TkZE2fPl3Hjx9XXV2d/vKXv6i5uVmHDh2SxH4fKWcz9hL7/fmqr6/X9OnTNXr0aOfhf621T5/8sy2MPQHFcoWFhaqtrdVbb72l9957T/n5+Ro5cqR27twZ7dIueGcz9vn5+brpppt0zTXX6Pe//70eeeQRLVmyRA0NDVGsvG275JJLtGrVKr322mu66KKL5PF4VFtbq379+ikmhn+yIulsx579/odramrSyJEjZYzRsmXLol2O1aL2LB6c2b59+/Too49q165duuqqqyRJvXv31r///W8tXbpUJSUl8vl8Onz4cMj7Tpw4oSNHjsjn80mSfD7fKWfhn/z5TG1Obm9vzmbsW5Kdna0TJ07owIED6t69O2P/Aw0aNEj79u3Tl19+qbi4OKWmpsrn8+nHP/6xJLHfR9CZxr4l7Pdn52Q4+eyzz7RhwwZn9kRqvX365J81NTVKT08PadOnT58wfMvw4b8jFjt+/LgknfK/xtjYWOeM+pycHNXW1qqiosLZvmHDBgWDQWVnZzttNm3apKamJqfN+vXr1b17d3Xq1MlpU1paGvI569evV05OTvi/WBtwNmPfkh07digmJsaZqmXsz8/FF1+s1NRUbdiwQYcPH3auemC/j7zvG/uWsN+f2clwsnfvXr311lvq3LlzyPbW2qezsrLk8/lC2gQCAZWXl9s39tE+S/dCdvToUVNZWWkqKyuNJLNgwQJTWVnpnLX91VdfmcrKSrN27VojyaxcudJUVlaaQ4cOGWOMaWxsNFdccYW54YYbTHl5ufn000/N/PnzjcvlMmvXrnU+59ZbbzV9+/Y15eXlZvPmzaZbt25m9OjRzvba2lrj9XrNnXfeaXbt2mVWrlxpOnToYB5//HGnzTvvvGPi4uLM/Pnzze7du82sWbNMfHy82blzZyuNVni1xthv2bLFLFy40OzYscPs27fP/OMf/zCXXHKJGTt2rFMHY3/uY2+MMU8//bQpKyszn376qfn73/9u0tLSTH5+fsjnsN+fqjXGnv2+Zacb+8bGRnP77bebSy+91OzYscMcOnTIWf7vFTmttU8XFxeb1NRU88orr5gPPvjADB061GRlZZlvvvmmdQbrLBFQIujtt982kk5Zxo0bZ4wxZvny5S1unzVrltPHJ598YoYPH266dOliOnToYK655ppTLn396quvzOjRo81FF11kUlJSzPjx483Ro0dD2rz//vtm4MCBxu12mx/96EemuLj4lHpfeukl89Of/tQkJCSYq666KiQEtTWtMfYVFRUmOzvbeDwek5iYaHr27GnmzJlj6uvrQ2ph7M997KdPn268Xq+Jj4833bp1M4888ogJBoMhn8N+f6rWGHv2+5adbuxPXtbd0vL22287fbTWPh0MBk1hYaHxer3G7XabW265xezZsyci43I+XMYYE565GAAAgPDgHBQAAGAdAgoAALAOAQUAAFiHgAIAAKxDQAEAANYhoAAAAOsQUAAAgHUIKAAAwDoEFAAAYB0CCgAAsA4BBQAAWIeAAgAArPP/ASGN52cRZXCXAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "checking contiguity of final HDs\n",
      "working on HD 1190 out of 8941\n",
      "working on HD 6987 out of 8941\n",
      "all done checking HD and complement contiguity for all 8941 HDs\n",
      "underpop contigFail, enclaveFail = 0 0 out of 83\n",
      "overpop contigFail, enclaveFail = 0 0 out of 499\n",
      "total contigFail, enclaveFail =  0 0\n"
     ]
    }
   ],
   "source": [
    "print(\"Here are the stats prior to any equi-pop patching\")\n",
    "shedUnitUse = [0. for u in range(nUnits)]\n",
    "shedHDlist = [HDunitList[t].copy() for t in range(nHDs)]\n",
    "shedHDpop = [HDvPop[t] for t in range(nHDs) ]\n",
    "for t in popHDlist:\n",
    "    for u in shedHDlist[t]:\n",
    "        shedUnitUse[u] += HDweight[t] * nDistricts   #KISS - recalc these\n",
    "#plt.hist(latestUnitUse,bins=50,weights=unitPop,label=\"pre-squaring\",histtype=\"step\")\n",
    "plt.hist(ampedUnitUse, bins=50, weights=unitPop,label=\"amped\",histtype=\"step\")\n",
    "plt.hist(shedUnitUse, bins=50, weights=unitPop,label=\"shed\",histtype=\"step\")\n",
    "plt.legend()\n",
    "#latestAvg, latestSD = getWeightedAvgAndSD(latestUnitUse,unitPop)\n",
    "shedUnitUseAvg, shedUnitUseSD = getWeightedAvgAndSD(shedUnitUse,unitPop)\n",
    "#print(\"orig unit avg and sd usage are\",r5(latestAvg), r5(latestSD) )\n",
    "print(\"amped unit avg and sd usage are\",r5(ampedUnitUseAvg), r5(ampedUnitUseSD) )\n",
    "print(\"shed unit avg and sd usage are\", r5(shedUnitUseAvg),  r5(shedUnitUseSD) )\n",
    "plt.show()\n",
    "# note: when I ran this early Jan, went from 0.12662 to 0.09961 to 0.09432 SD orig-amped-shed, but contig not yet done\n",
    "print(\"and here are the final populations\")\n",
    "plt.hist([shedHDpop[t] for t in popHDlist],bins=20)\n",
    "plt.axvline(aDP,ls=\"--\")\n",
    "plt.show()\n",
    "print(\"checking contiguity of final HDs\")\n",
    "failEnclaveSet, failContigSet = set(), set()\n",
    "for i,t in enumerate(popHDlist):\n",
    "    if i%800 == 0:\n",
    "        print(\"working on HD\",t,\"out of\",nHDs)\n",
    "    unbroken, noEnclave, sList, eList = enclaveCheck(HDunitList[t], unitNbrs,5)\n",
    "    if not noEnclave:\n",
    "        noEnclave, eList = isContiguous(list({u for u in range(nUnits)}.difference(set(HDunitList[t]))),unitNbrs)\n",
    "    if not unbroken or not noEnclave:\n",
    "        #print(\"uh-oh, HD\",t,\"has contiguity, complement-contiguity of\",unbroken, noEnclave)\n",
    "        pass\n",
    "    if not unbroken:\n",
    "        failContigSet.add(t)\n",
    "    if not noEnclave:\n",
    "        failEnclaveSet.add(t)\n",
    "print(\"all done checking HD and complement contiguity for all\",nHDs,\"HDs\")\n",
    "failContigUnderpopped, failEnclaveUnderpopped = set(underPoppedList).intersection(failContigSet), set(underPoppedList).intersection(failEnclaveSet)\n",
    "failContigOverpopped, failEnclaveOverpopped = set(overPoppedList).intersection(failContigSet), set(overPoppedList).intersection(failEnclaveSet)\n",
    "print(\"underpop contigFail, enclaveFail =\",len(failContigUnderpopped), len(failEnclaveUnderpopped),\"out of\",len(underPoppedList))\n",
    "print(\"overpop contigFail, enclaveFail =\",len(failContigOverpopped), len(failEnclaveOverpopped),\"out of\",len(overPoppedList))\n",
    "print(\"total contigFail, enclaveFail = \",len(failContigSet), len(failEnclaveSet) )\n",
    "for u in range(nUnits):\n",
    "    if abs( allUnits[u]%1 - 0.25) < 0.01:\n",
    "        print(\"CCB unit\",u,\"with pop\",unitPop[u],\"now has use\",r5(unitUse[u]) )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "id": "ff3288f1-f9ca-473c-886c-ee8d6c2637bf",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "8941 1446 1755\n"
     ]
    }
   ],
   "source": [
    "print(nHDs, len(popHDlist),nUnits)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1ed668f8-bf1e-46eb-963f-cf5e2b935b11",
   "metadata": {},
   "outputs": [],
   "source": [
    "#see MD code if we need to remove a stuck CCB's from any HDs and then redo the square-up after dropping them"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 135,
   "id": "e7bfa674-8fc8-42c8-86e9-76d334d3c47c",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "HDvPop = [0. for t in range(nHDs)]  #writing UNIT lists to a file\n",
    "tList = [t for t in range(nHDs)]\n",
    "for t in popHDlist:\n",
    "    for u in HDunitList[t]:\n",
    "        HDvPop[t] += unitPop[u]\n",
    "outDF = pd.DataFrame( {\"tract\":tList,\"HDweight\":HDweight,\"HDvPop\":HDvPop,\"HDunitList\":HDunitList,\n",
    "                      \"centroid x\":hdCPx, \"centroid y\":hdCPy} )\n",
    "outname = STATE+str(int(nHDs))+\"FrankHamContigGoodPop.csv\" #\"contigUnpatchedB.csv\" unpatchedContigGoodPop.csv\n",
    "outpath = \"2024state_HD_output/\"+outname\n",
    "outDF.to_csv(outpath)"
   ]
  },
  {
   "cell_type": "raw",
   "id": "dd17ff74-7240-47b6-88db-19d428878aec",
   "metadata": {
    "tags": []
   },
   "source": [
    "print(\"this optional RESTART block pulls in an existing UNIT (not vtd) list for patching\") #vtdlist for patching\")\n",
    "print(\"Must have already established unitGeoms, pops, topology -- or read in via next block\")\n",
    "guessedFile = \"enter the unpatched UNIT list file, e.g. ./2024state_HD_output/\"+STATE+str(nHDs)+\"opt3ContigGoodPop.csv\"\n",
    "infile = input(guessedFile)\n",
    "inDF = pd.read_csv(infile)\n",
    "vtdListString = inDF[\"HDunitList\"]  #inDF[\"HDvtdList\"]\n",
    "nHDs = len(vtdListString)\n",
    "inVTDlist = [ast.literal_eval(vtdListString[t]) for t in range(nHDs)]\n",
    "HDweight = inDF[\"HDweight\"]\n",
    "sumWt = np.sum(HDweight)\n",
    "print(\"sum of HDweight should be unity, actually is\",sumWt)\n",
    "print(\"I will now renormalize\")\n",
    "HDweight = [HDweight[t] /sumWt for t in range(nHDs)]\n",
    "print(\"normalized weight is now\",np.sum(HDweight))\n",
    "HDvPop = inDF[\"HDvPop\"].to_list()\n",
    "hdCPx, hdCPy = inDF[\"centroid x\"], inDF[\"centroid y\"]\n",
    "hdCP = [Point(hdCPx[t], hdCPy[t]) for t in range(nHDs)]\n",
    "print(\"I read in\",nHDs,\"HD lists of units\") #vtds\")\n",
    "HDunitList = [inVTDlist[t].copy() for t in range(nHDs)]\n",
    "#HDunitList = [list() for t in range(nHDs)]\n",
    "#for t in range(nHDs):\n",
    "#    if t%500 == 0:\n",
    "#        print(\"working on converting HD\",t,\"from vtd list to unit list\")\n",
    "#    for v in inVTDlist[t]:  #this will skip over surrounded units, whose pops we have added to their surrounders\n",
    "#        if v in allUnits:\n",
    "#            HDunitList[t].append(allUnits.index(v))\n",
    "#    for c in unitCounties:\n",
    "#        if countyTractList[c][0] in inVTDlist[t]:\n",
    "#            u = allUnits.index(c+0.5)\n",
    "#            HDunitList[t].append(u)\n",
    "#    for j, L in enumerate(CCBlist):\n",
    "#        c = L[0]\n",
    "#        if countyTractList[c][0] in inVTDlist[t]:\n",
    "#            u = allUnits.index(j+0.25)\n",
    "#            HDunitList[t].append(u) \n",
    "            \n",
    "unitUse = [0. for u in range(nUnits)]\n",
    "for t in range(nHDs):\n",
    "    for u in HDunitList[t]:\n",
    "        unitUse[u] += HDweight[t] * nDistricts\n",
    "plt.hist(unitUse, bins=50, weights=unitPop,label=\"read-in\",histtype=\"step\")\n",
    "plt.legend()\n",
    "unpatchedAvg, unpatchedSD = getWeightedAvgAndSD(unitUse,unitPop)\n",
    "print(\"orig unit avg and sd usage are\",r5(unpatchedAvg), r5(unpatchedSD) )\n",
    "plt.show()\n",
    "currAvg, currSD = unpatchedAvg, unpatchedSD"
   ]
  },
  {
   "cell_type": "raw",
   "id": "29fb9cab-2a0f-4386-9dfe-a16fce6cbba9",
   "metadata": {},
   "source": [
    "#SKIP THE BELOW IF NOT A COLD RESTART *******\n",
    "print(\"upon restart, need to pull in unit topology and data\")  #note, this won't have geometries for plotting, but fine for patching\n",
    "topologyFile = \"enter the unpatched UNIT list file, e.g. ./state_map_files/MNunitTopologies_06Apr24.csv\"\n",
    "infile = input(topologyFile)\n",
    "topDF = pd.read_csv(infile)\n",
    "unitCPx, unitCPy, unitPop = topDF[\"centroid x\"], topDF[\"centroid y\"], topDF[\"unitPop\"]\n",
    "nUnits = len(unitPop)\n",
    "unitCP = [Point(unitCPx[u], unitCPy[u]) for u in range(nUnits) ]\n",
    "onBorder = topDF[\"onBorder\"]\n",
    "borderSet = set()\n",
    "for i, onB in enumerate(onBorder):\n",
    "    if onB == 1:\n",
    "        borderSet.add(i)\n",
    "borderList = list(borderSet)\n",
    "\n",
    "nbrListString = topDF[\"neighborList\"]\n",
    "unitNbrs = [ast.literal_eval(nbrListString[u]) for u in range(nUnits)]\n",
    "unitParentVTDno = topDF[\"unitParentVTDno\"]  #NOTE: some units are VTD fragments, so they share a parentVTDno\n",
    "uVLstring = topDF[\"unitVTDlist\"]\n",
    "unitNbrs = [ast.literal_eval(uVLstring[u]) for u in range(nUnits)]\n",
    "allUnits = topDF[\"allUnits\"]"
   ]
  },
  {
   "cell_type": "raw",
   "id": "741a4e00-d97e-4ceb-b6d3-517af0b34756",
   "metadata": {
    "tags": []
   },
   "source": [
    "#needed for restart only  about 5sec per 2000 HDs\n",
    "avgDist = [0. for t in range(nHDs)]\n",
    "popHDlist = list()\n",
    "for t in range(nHDs):\n",
    "    if t%800 == 0:\n",
    "        print(\"working avg precinct-to-HDcP distance for HD\",t)\n",
    "    if HDvPop[t] > 0.1 * aDP:\n",
    "        avgDist[t] = np.sum([unitPop[u]*unitCP[u].distance(hdCP[t]) for u in HDunitList[t] ]) / HDvPop[t]\n",
    "        popHDlist.append(t)\n",
    "print(\"all avgDist to HD centers computed\")"
   ]
  },
  {
   "cell_type": "raw",
   "id": "b65a0214-71c0-4b79-a67f-780c3f595e5c",
   "metadata": {
    "tags": []
   },
   "source": [
    "discontigOnly, enclaveOnly, bothProblems, cleanList = list(), list(), list(), list()  #optional contiguity check\n",
    "for t in popHDlist:\n",
    "    if t%500 == 0:\n",
    "        print(\"checking for discontiguities for HD\",t)\n",
    "    unbroken, noEnclave,smallPieceList,enclaveList = enclaveCheck(HDunitList[t], unitNbrs)\n",
    "    if unbroken and noEnclave:\n",
    "        cleanList.append(t)\n",
    "    if unbroken and not noEnclave:\n",
    "        enclaveOnly.append(t)\n",
    "    if not unbroken and noEnclave:\n",
    "        discontigOnly.append(t)\n",
    "    if not unbroken and not noEnclave:\n",
    "        bothProblems.append(t)\n",
    "print(\"out of\",len(popHDlist),\"total HDs, there were\",len(cleanList),len(discontigOnly),len(enclaveOnly),\n",
    "      len(bothProblems),\"HDs that were clean, discontig only, enclave-only, both problems.  Should all be zeroes\")"
   ]
  },
  {
   "cell_type": "raw",
   "id": "94accb2b-2d7d-45c9-ab27-32cd7724788d",
   "metadata": {
    "tags": []
   },
   "source": [
    "print(\"checking unitUse, pop for county clusters\")  #not run for legisl OH\n",
    "for uNo in allUnits:\n",
    "    if uNo - int(uNo) > 0.23 and uNo - int(uNo) < 0.27:\n",
    "        u = allUnits.index(uNo)\n",
    "        print(u,r5(unitUse[u]), unitPop[u])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "id": "72941b8f-7be6-4a31-9377-618f44a34336",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "unpatchedUnitUse = unitUse.copy()              #... for safekeeping\n",
    "unpatchedHDlist =  [HDunitList[t].copy() for t in range(nHDs) ]\n",
    "unpatchedHDpop =   HDvPop.copy()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 145,
   "id": "5f9ca091-1eb6-4135-a233-7f5ae0f5e3d1",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "unitUse = unpatchedUnitUse.copy()              #... for restarting\n",
    "HDunitList =  [unpatchedHDlist[t].copy() for t in range(nHDs) ]\n",
    "HDvPop =   unpatchedHDpop.copy()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "fc95ca58-c27f-4ac9-b6f7-234a94945f07",
   "metadata": {},
   "outputs": [],
   "source": [
    "#I believe BELOW UNDERUSED is faster now that we subbed wontEnclave for enclaveCheck"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 146,
   "id": "e9dd457d-fb37-49cf-9b19-19c17c328ede",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Here, we exchange in under-used, THEN shed over-used\n",
      "Currently, we will stop patching when the overall sd of usage is less than 0.05\n"
     ]
    },
    {
     "name": "stdin",
     "output_type": "stream",
     "text": [
      "enter updated maxSD value 0.052\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "this would currently cover a total of 505 units\n"
     ]
    },
    {
     "name": "stdin",
     "output_type": "stream",
     "text": [
      "enter updated number of units to try boosting usage 200\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "there are currently 741 units out of 1755 with usage below 0.98\n",
      "maxExchangePop is currently 0.05 fraction of avgDistrictPop\n",
      "Let's further tighten the distro with exchanges up to 5963\n",
      "current avg and SD of unit usage are 1.00105 0.09076 . Now trying to increase up to 200 units' underusage\n",
      "all done trying2increase usage of unit 233 final usage = 0.80986 0 sec elapsed 13 0 complete, failed patches, couldn't start= 7\n",
      "current avg and SD of usage are 1.00107 0.0893\n",
      "all done trying2increase usage of unit 434 final usage = 0.79902 1 sec elapsed 20 0 complete, failed patches, couldn't start= 9\n",
      "current avg and SD of usage are 1.00109 0.08721\n",
      "all done trying2increase usage of unit 472 final usage = 0.98404 2 sec elapsed 22 0 complete, failed patches, couldn't start= 4\n",
      "current avg and SD of usage are 1.00111 0.08597\n",
      "all done trying2increase usage of unit 1148 final usage = 0.98452 3 sec elapsed 22 0 complete, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 1.00117 0.08414\n",
      "all done trying2increase usage of unit 281 final usage = 0.98501 4 sec elapsed 24 0 complete, failed patches, couldn't start= 4\n",
      "current avg and SD of usage are 1.00117 0.081\n",
      "all done trying2increase usage of unit 729 final usage = 0.98945 5 sec elapsed 18 0 complete, failed patches, couldn't start= 8\n",
      "current avg and SD of usage are 1.00123 0.08015\n",
      "all done trying2increase usage of unit 543 final usage = 0.99199 6 sec elapsed 25 0 complete, failed patches, couldn't start= 12\n",
      "current avg and SD of usage are 1.00124 0.07836\n",
      "all done trying2increase usage of unit 436 final usage = 0.98747 7 sec elapsed 24 0 complete, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 1.00127 0.07706\n",
      "all done trying2increase usage of unit 1214 final usage = 0.98371 9 sec elapsed 21 0 complete, failed patches, couldn't start= 7\n",
      "current avg and SD of usage are 1.0013 0.07585\n",
      "begin usage increase for unit 724 with usage 0.76287 . Sec, total UU units tried = 9 10\n",
      "all done trying2increase usage of unit 724 final usage = 0.98272 10 sec elapsed 16 0 complete, failed patches, couldn't start= 17\n",
      "current avg and SD of usage are 1.00132 0.07531\n",
      "all done trying2increase usage of unit 726 final usage = 0.98461 12 sec elapsed 17 0 complete, failed patches, couldn't start= 5\n",
      "current avg and SD of usage are 1.00134 0.07492\n",
      "all done trying2increase usage of unit 82 final usage = 0.9871 12 sec elapsed 19 0 complete, failed patches, couldn't start= 15\n",
      "current avg and SD of usage are 1.00136 0.07334\n",
      "all done trying2increase usage of unit 1003 final usage = 0.98266 14 sec elapsed 16 0 complete, failed patches, couldn't start= 33\n",
      "current avg and SD of usage are 1.00137 0.07258\n",
      "all done trying2increase usage of unit 708 final usage = 0.98798 16 sec elapsed 17 0 complete, failed patches, couldn't start= 12\n",
      "current avg and SD of usage are 1.0014 0.07182\n",
      "all done trying2increase usage of unit 977 final usage = 0.98134 16 sec elapsed 14 0 complete, failed patches, couldn't start= 6\n",
      "current avg and SD of usage are 1.00141 0.07044\n",
      "all done trying2increase usage of unit 554 final usage = 0.98477 17 sec elapsed 22 0 complete, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 1.00142 0.06964\n",
      "all done trying2increase usage of unit 972 final usage = 0.9947 19 sec elapsed 16 0 complete, failed patches, couldn't start= 1\n",
      "current avg and SD of usage are 1.00151 0.06882\n",
      "all done trying2increase usage of unit 1019 final usage = 0.98389 20 sec elapsed 15 0 complete, failed patches, couldn't start= 6\n",
      "current avg and SD of usage are 1.00151 0.06799\n",
      "all done trying2increase usage of unit 728 final usage = 0.98524 21 sec elapsed 15 0 complete, failed patches, couldn't start= 2\n",
      "current avg and SD of usage are 1.00149 0.06763\n",
      "begin usage increase for unit 1216 with usage 0.80304 . Sec, total UU units tried = 21 20\n",
      "all done trying2increase usage of unit 1216 final usage = 0.98355 23 sec elapsed 16 0 complete, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 1.00148 0.06717\n",
      "all done trying2increase usage of unit 329 final usage = 0.98988 24 sec elapsed 13 0 complete, failed patches, couldn't start= 2\n",
      "current avg and SD of usage are 1.00148 0.06573\n",
      "all done trying2increase usage of unit 623 final usage = 0.92543 24 sec elapsed 11 0 complete, failed patches, couldn't start= 2\n",
      "current avg and SD of usage are 1.00148 0.0651\n",
      "all done trying2increase usage of unit 417 final usage = 0.98378 25 sec elapsed 14 0 complete, failed patches, couldn't start= 4\n",
      "current avg and SD of usage are 1.00145 0.06394\n",
      "all done trying2increase usage of unit 264 final usage = 0.98671 26 sec elapsed 16 0 complete, failed patches, couldn't start= 5\n",
      "current avg and SD of usage are 1.00145 0.06356\n",
      "all done trying2increase usage of unit 118 final usage = 0.98667 26 sec elapsed 13 0 complete, failed patches, couldn't start= 1\n",
      "current avg and SD of usage are 1.00143 0.06305\n",
      "all done trying2increase usage of unit 949 final usage = 0.98266 28 sec elapsed 13 0 complete, failed patches, couldn't start= 7\n",
      "current avg and SD of usage are 1.00148 0.06224\n",
      "all done trying2increase usage of unit 1656 final usage = 0.96639 29 sec elapsed 12 0 complete, failed patches, couldn't start= 5\n",
      "current avg and SD of usage are 1.00153 0.06202\n",
      "all done trying2increase usage of unit 1657 final usage = 0.96639 29 sec elapsed 12 0 complete, failed patches, couldn't start= 5\n",
      "current avg and SD of usage are 1.00152 0.06168\n",
      "all done trying2increase usage of unit 142 final usage = 0.96159 30 sec elapsed 12 0 complete, failed patches, couldn't start= 8\n",
      "current avg and SD of usage are 1.00153 0.06079\n",
      "begin usage increase for unit 709 with usage 0.82528 . Sec, total UU units tried = 30 30\n",
      "all done trying2increase usage of unit 709 final usage = 0.98047 31 sec elapsed 14 0 complete, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 1.00154 0.06029\n",
      "all done trying2increase usage of unit 586 final usage = 0.98824 32 sec elapsed 12 0 complete, failed patches, couldn't start= 3\n",
      "current avg and SD of usage are 1.00156 0.05843\n",
      "all done trying2increase usage of unit 1212 final usage = 0.98515 34 sec elapsed 13 0 complete, failed patches, couldn't start= 3\n",
      "current avg and SD of usage are 1.00157 0.05814\n",
      "all done trying2increase usage of unit 1409 final usage = 0.98015 35 sec elapsed 13 0 complete, failed patches, couldn't start= 2\n",
      "current avg and SD of usage are 1.00157 0.05774\n",
      "all done trying2increase usage of unit 1317 final usage = 0.9814 36 sec elapsed 11 0 complete, failed patches, couldn't start= 2\n",
      "current avg and SD of usage are 1.00158 0.05717\n",
      "all done trying2increase usage of unit 1400 final usage = 0.94033 37 sec elapsed 10 0 complete, failed patches, couldn't start= 14\n",
      "current avg and SD of usage are 1.00156 0.05681\n",
      "all done trying2increase usage of unit 719 final usage = 0.98892 38 sec elapsed 12 0 complete, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 1.00158 0.05587\n",
      "all done trying2increase usage of unit 808 final usage = 0.99635 39 sec elapsed 13 0 complete, failed patches, couldn't start= 2\n",
      "current avg and SD of usage are 1.00159 0.05541\n",
      "all done trying2increase usage of unit 703 final usage = 0.98366 41 sec elapsed 10 0 complete, failed patches, couldn't start= 16\n",
      "current avg and SD of usage are 1.0016 0.05513\n",
      "all done trying2increase usage of unit 704 final usage = 0.98366 42 sec elapsed 10 0 complete, failed patches, couldn't start= 17\n",
      "current avg and SD of usage are 1.0016 0.0549\n",
      "begin usage increase for unit 1068 with usage 0.84802 . Sec, total UU units tried = 42 40\n",
      "all done trying2increase usage of unit 1068 final usage = 0.98716 43 sec elapsed 13 0 complete, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 1.00161 0.05423\n",
      "all done trying2increase usage of unit 391 final usage = 0.98404 43 sec elapsed 10 0 complete, failed patches, couldn't start= 8\n",
      "current avg and SD of usage are 1.00161 0.05327\n",
      "all done trying2increase usage of unit 1213 final usage = 0.98632 45 sec elapsed 11 0 complete, failed patches, couldn't start= 2\n",
      "current avg and SD of usage are 1.00162 0.0529\n",
      "all done trying2increase usage of unit 511 final usage = 0.98747 45 sec elapsed 9 0 complete, failed patches, couldn't start= 1\n",
      "current avg and SD of usage are 1.00164 0.05202\n",
      "all done trying2increase usage of unit 453 final usage = 0.98136 46 sec elapsed 12 0 complete, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 1.00164 0.05139\n"
     ]
    }
   ],
   "source": [
    "#FIRST PATCHING BLOCK - boosting underuse.  Suppresses long strings.  For some states (e.g. MA), do overused first. MA:over-und-over-und\n",
    "#  When running Ohio the first time, 20 units took 7800 seconds\n",
    "print(\"Here, we exchange in under-used, THEN shed over-used\")\n",
    "maxSD = 0.05  #0.07  #0.05   #adjust down if distro already tight\n",
    "print(\"Currently, we will stop patching when the overall sd of usage is less than\",maxSD)\n",
    "maxSD = float(input(\"enter updated maxSD value\"))\n",
    "stopMinUse = 1. - maxSD\n",
    "#print(\"we will stop patching on individual underused units when their usage exceeds\",r5(stopMinUse))\n",
    "maxNtries = 0\n",
    "for u in range(nUnits):\n",
    "    if unitUse[u] < stopMinUse:\n",
    "        maxNtries +=1\n",
    "print(\"this would currently cover a total of\",maxNtries,\"units\")\n",
    "maxNtries = int(input(\"enter updated number of units to try boosting usage\"))\n",
    "stopMinUse = 0.98 #float(input(\"enter updated stopMinUse value for ending usage boost on a unit; I reco 0.98\"))\n",
    "nInPlay = 0\n",
    "for u in range(nUnits):\n",
    "    if unitUse[u] < stopMinUse:\n",
    "        nInPlay +=1\n",
    "print(\"there are currently\",nInPlay,\"units out of\",nUnits,\"with usage below\",stopMinUse)\n",
    "nSmallUsers = 5\n",
    "maxExchangePop = 0.05*aDP \n",
    "print(\"maxExchangePop is currently\",r5(maxExchangePop/aDP),\"fraction of avgDistrictPop\")\n",
    "newMEPratio = 0.05 #float(input(\"Enter updated maxExchangePop fraction\"))\n",
    "maxExchangePop = newMEPratio*aDP\n",
    "debug1 = 10 #int(input(\"enter 1 to print out stats for every patched HD, otherwise enter reporting frequency\"))\n",
    "print(\"Let's further tighten the distro with exchanges up to\",int(maxExchangePop)) #1/25/24\n",
    "maxGap = 0.05 * aDP #0.9 * np.median(unitPop) \n",
    "currAvg, currSD = getWeightedAvgAndSD(unitUse,unitPop)\n",
    "\n",
    "attemptedSmallUs, startTime = list(), time.time()\n",
    "print(\"current avg and SD of unit usage are\",r5(currAvg), r5(currSD),\". Now trying to increase up to\",maxNtries,\"units' underusage\" )\n",
    "startTime = time.time()\n",
    "while currSD > maxSD and len(attemptedSmallUs) < maxNtries:\n",
    "    #each round, find the (5) most underused not-yet-tried units. Pick the unit w/ most overuse of it + 1-nbrs\n",
    "    idx = np.argsort(unitUse)\n",
    "    idxNo, nSmallFound, smallUsers = 0,0,list()\n",
    "    while nSmallFound < nSmallUsers:\n",
    "        consideredSmallU = idx[idxNo]\n",
    "        if consideredSmallU not in attemptedSmallUs:\n",
    "            smallUsers.append(consideredSmallU)\n",
    "            nSmallFound +=1\n",
    "        idxNo +=1\n",
    "    UUUclusters = [ [b] + unitNbrs[b] for b in smallUsers ]\n",
    "    smallUnderUse = [np.sum([(unitUse[j] - 1.) for j in UUUclusters[i] ]) for i in range(nSmallUsers) ]\n",
    "    smallI = smallUnderUse.index(np.max(smallUnderUse))\n",
    "    UUU = smallUsers[ smallI ]  #pick the unit that centers cluster with least composite use\n",
    "    attemptedSmallUs.append(UUU)  #so we don't try this unit again in a future loop\n",
    "    UUUc = UUUclusters[smallI]  #the list of this unit and ALL its neighbors (to be curated below ...)\n",
    "    if len(attemptedSmallUs) % debug1 == 0:\n",
    "        print(\"begin usage increase for unit\",UUU,\"with usage\",r5(unitUse[UUU]),\". Sec, total UU units tried =\",\n",
    "              int(time.time()-startTime),len(attemptedSmallUs) )\n",
    "    for u in UUUc.copy():\n",
    "        if unitUse[u] > 1.:\n",
    "            UUUc.remove(u)  #...drop any overused neighbors of the primary UUU from the target sheddable cluster\n",
    "    uuuHDs, uuuDists = list(), list()\n",
    "    for t in popHDlist:  #finding all HDs with at least one cluster member on the boundary\n",
    "        if UUU not in HDunitList[t]:\n",
    "            HDadjoinSet = set( getAdjoiners(HDunitList[t],unitNbrs) )\n",
    "            if len(HDadjoinSet.intersection(UUUc) ) > 0: #the UUU or one of its underused 1-neighbors adjoins this HD\n",
    "                uuuHDs.append(t)  #Note: we'll check later if we can contiguously pick up the UUU's cluster\n",
    "                uuuDists.append( unitCP[UUU].distance(hdCP[t]) / avgDist[t] )\n",
    "        idx0 = np.argsort(uuuDists)\n",
    "    hasCandidates = True\n",
    "    if len(uuuDists) == 0:  #this underused unit is buried inside others; skip it\n",
    "        hasCandidates = False\n",
    "        print(\"   Couldn't find any HDs adjacent to underused unit\",UUU)\n",
    "    nPatchSuccess, nPatchFail, nCouldntStart, idxNo = 0,0,0,-1\n",
    "    while unitUse[UUU] < stopMinUse and idxNo < 0.8*len(uuuHDs) and hasCandidates: #arbitrarily only examine 80% closest of HDs\n",
    "        aDP = countyADP[unitCountyNo[UUU]]\n",
    "        maxGap = 0.01 * aDP   #0.05 * aDP #legislative, but should be able to get close\n",
    "        \n",
    "        excess, giveUpOnShedding = 99*aDP, True  #default = failed swap\n",
    "        idxNo += 1\n",
    "        if idxNo % 20 == 0 and debug1 == 1:\n",
    "            print(\"try to add unit\",UUU,\"from\",abs(idxNo),\"th HD.  Usage up to\",unitUse[UUU] )\n",
    "        t = uuuHDs[idx0[idxNo]]\n",
    "        trySet = set(HDunitList[t]).union(set(UUUc))\n",
    "        contig,complementContig, __, ___ = enclaveCheck(list(trySet), unitNbrs)\n",
    "        loopUUUc = UUUc.copy()  #default; we will add whole cluster\n",
    "        if not (contig and complementContig): #we can't add whole cluster; neighbors may be enclavy.   Try just adding the UUU\n",
    "            trySet = set(HDunitList[t]).union({UUU})\n",
    "            contig,complementContig, __, ___ = enclaveCheck(list(trySet), unitNbrs)\n",
    "            loopUUUc = [UUU]\n",
    "        if contig and complementContig:  #we can at least add the cluster, let's go for more\n",
    "            HDuuuSet = set(loopUUUc).difference(set(HDunitList[t]))  #the subset of the UUU cluster that adjoins (NOT in) this HD\n",
    "            HDuuuCpop = np.sum([unitPop[u] for u in HDuuuSet])\n",
    "            giveUpOnAdding = False            \n",
    "            addCandidates, addUseDists = list(), list()\n",
    "            uuCandidates = getAdjoiners(trySet, unitNbrs)  #any adjoiner can be picked up, even if far from UUUc\n",
    "            for u in uuCandidates:\n",
    "                if HDuuuCpop + unitPop[u] <= maxExchangePop:\n",
    "                    addCandidates.append(u)  #Below's relative scoring of use and distance is a bit arbitrary\n",
    "                    addUseDists.append((unitUse[uu]-1.) + 0.1*unitCP[uu].distance(hdCP[t]) / avgDist[t])  #bias toward close, underused\n",
    "            if len(addCandidates) == 0:\n",
    "                giveUpOnAdding = True\n",
    "            while HDuuuCpop < maxExchangePop and not giveUpOnAdding:\n",
    "                addNneighbors = [len( set(unitNbrs[addC]).intersection(trySet) ) for addC in addCandidates ]\n",
    "                addScores = addUseDists.copy()\n",
    "                for jjj, u in enumerate(addCandidates):\n",
    "                    if addNneighbors[jjj] == 1:\n",
    "                        addScores[jjj] += 0.4321    #discourage growing fingers\n",
    "                #print(\"HDuuuCpop is now\",HDuuuCpop)\n",
    "                idx, ij, notYetPicked = np.argsort(addScores), 0, True\n",
    "                while ij < 0.5*len(addScores) and notYetPicked:\n",
    "                    listNo = idx[ij]   #work from low to high score\n",
    "                    addU = addCandidates[listNo]\n",
    "                    cContig = wontEnclave(addU, list(trySet), unitNbrs, borderUnits)  #4/20/24 sub this in as faster? vs below line\n",
    "                    #contig,cContig, __, ___ = enclaveCheck(list(trySet.union({addU}) ), unitNbrs)  #4/20/24 this is unnec slow\n",
    "                    if cContig: #contig and cContig:\n",
    "                        notYetPicked = False\n",
    "                        HDuuuCpop += unitPop[addU]\n",
    "                        HDuuuSet.add(addU)\n",
    "                        trySet.add(addU)\n",
    "                        del addUseDists[addCandidates.index(addU)]\n",
    "                        del addCandidates[addCandidates.index(addU)]                        \n",
    "                        for uu in list(set(unitNbrs[addU]).difference(trySet) ): \n",
    "                            if uu not in addCandidates and unitPop[uu] + HDuuuCpop < maxExchangePop and unitUse[uu] < 1.01:\n",
    "                                addCandidates.append(uu)\n",
    "                                addUseDists.append( (unitUse[uu]-1.) + 0.1*unitCP[uu].distance(hdCP[t]) / avgDist[t] )\n",
    "                    else:\n",
    "                        ij +=1\n",
    "                if notYetPicked:\n",
    "                    giveUpOnAdding = True  #all candidates would create a discontig, so can't shed any more units\n",
    "            addSet = HDuuuSet.copy()  #we're done building the list of underused units to add to this HD\n",
    "            trySet = set(HDunitList[t]).union(addSet) \n",
    "            excess = np.sum([unitPop[u] for u in trySet]) - aDP\n",
    "            shedCandidates, shedScores, giveUpOnShedding = list(), list(), False\n",
    "            bdryCandidates = getBdryNonEdgers(trySet, unitNbrs)  #new - any boundary unit can be shed, even if far from OUUc\n",
    "            for u in bdryCandidates:\n",
    "                if unitPop[u] <= excess + maxGap:\n",
    "                    shedCandidates.append(u)\n",
    "                    shedScores.append((unitUse[u] - 1.) * unitCP[u].distance(hdCP[t])/avgDist[t])  #bias toward OVERUSED, far\n",
    "            if len(shedCandidates) == 0:\n",
    "                giveUpOnShedding = True\n",
    "            shedSet = set()\n",
    "            while excess > maxGap and not giveUpOnShedding:\n",
    "                #print(\"excess pop is now\",excess,\"for HD\",t)\n",
    "                idx, ij, notYetPicked = np.argsort(shedScores), 0, True\n",
    "                while ij < len(shedScores) and notYetPicked:\n",
    "                    listNo = idx[-1-ij]   #work from high to low score\n",
    "                    shedU = shedCandidates[listNo]\n",
    "                    if shedScores[listNo] <= 0:  #we're delving into the underused; stop adding to shed list\n",
    "                        break\n",
    "                    if excess - unitPop[shedU] >= -1*maxGap:\n",
    "                        contig,cContig, __, ___ = enclaveCheck(list(trySet.difference({shedU}) ), unitNbrs)\n",
    "                        if contig and cContig:\n",
    "                            notYetPicked = False\n",
    "                            excess -= unitPop[shedU]\n",
    "                            trySet.remove(shedU)\n",
    "                            shedSet.add(shedU)\n",
    "                            del shedScores[shedCandidates.index(shedU)]\n",
    "                            del shedCandidates[shedCandidates.index(shedU)]\n",
    "                            newSheddables = set(unitNbrs[shedU]).intersection(trySet)\n",
    "                            for u in newSheddables:\n",
    "                                if excess - unitPop[u] >= -1*maxGap and u not in shedCandidates:\n",
    "                                    shedCandidates.append(u)  #we'll check enclavity if ever picked\n",
    "                                    shedScores.append((unitUse[u] - 1.) * unitCP[u].distance(hdCP[t])/avgDist[t])\n",
    "                            for kkk, u in enumerate(shedCandidates): #checking if this shed eliminates high-pop future sheds ...\n",
    "                                if excess - unitPop[u] < -1*maxGap:\n",
    "                                    del shedScores[kkk]\n",
    "                                    del shedCandidates[kkk]\n",
    "                    ij +=1\n",
    "                if notYetPicked:\n",
    "                    giveUpOnShedding = True  #all shedcandidates would create a discontig, so can't shed enough units to square pop\n",
    "            legitSwap = False\n",
    "            if abs(excess) <= 2.*maxGap:  #giving ourselves a bit more margin after exchanges\n",
    "                contig,cContig, __, ___ = enclaveCheck(list(trySet), unitNbrs) \n",
    "                if contig and cContig:\n",
    "                    legitSwap = True\n",
    "            if legitSwap:\n",
    "                for u in shedSet:\n",
    "                    unitUse[u] -= HDweight[t] * nDistricts\n",
    "                for u in addSet:\n",
    "                    unitUse[u] += HDweight[t] * nDistricts\n",
    "                HDunitList[t] = list(trySet)\n",
    "                HDvPop[t] = np.sum([ unitPop[u] for u in HDunitList[t] ])\n",
    "                nPatchSuccess +=1\n",
    "                #print(\"we added\",addSet,\"and shed units\",shedSet,\"from HD\",t)\n",
    "            else:\n",
    "                nPatchFail +=1\n",
    "        else:  #adding neither the UUU cluster or just the UUU worked; couldn't even start\n",
    "            nCouldntStart +=1\n",
    "            # end of shed + add patching on this HD\n",
    "            #print(\"shed and patched for HD, OUU\",t,OUU)\n",
    "\n",
    "    print(\"all done trying2increase usage of unit\",UUU,\"final usage =\",r5(unitUse[UUU]),int(time.time()-startTime),\"sec elapsed\",\n",
    "         nPatchSuccess,nPatchFail,\"complete, failed patches, couldn't start=\",nCouldntStart)\n",
    "    currAvg, currSD = getWeightedAvgAndSD(unitUse,unitPop)\n",
    "    print(\"current avg and SD of usage are\",r5(currAvg), r5(currSD) )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 147,
   "id": "861f29d3-b727-49af-90a8-aa9a963e0741",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAGdCAYAAAA44ojeAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA5iklEQVR4nO3deXhU5d3/8c8kJJMEspCEkKVB9kUFIlgidYEolkVpKzwKigoqoC2gEFFJBVm0hlZFEKM+tRSoBaHWiFZ8sAIC9UcARSOiCASiUEyIQELIQtbz+yNl6ph1wiwnk/frus51Zc45c8537izzyZn73LfFMAxDAAAAJuLj6QIAAAB+jIACAABMh4ACAABMh4ACAABMh4ACAABMh4ACAABMh4ACAABMh4ACAABMp42nC2iO6upqfffddwoODpbFYvF0OQAAoAkMw9C5c+cUGxsrH5+Gr5G0yIDy3XffKT4+3tNlAACAZjh+/Lh+8pOfNLhPiwwowcHBkmpeYEhIiIerAQAATVFYWKj4+Hjb+3hDWmRAufCxTkhICAEFAIAWpindM+gkCwAATIeAAgAATIeAAgAATKdF9kEBALQ8hmGosrJSVVVVni4FLuLr66s2bdo4ZQgQAgoAwOXKy8uVk5OjkpIST5cCFwsKClJMTIz8/f0v6jgEFACAS1VXVys7O1u+vr6KjY2Vv78/g2x6IcMwVF5eru+//17Z2dnq0aNHo4OxNYSAAgBwqfLyclVXVys+Pl5BQUGeLgcuFBgYKD8/P3377bcqLy9XQEBAs49FJ1kAgFtczH/TaDmc9X3mpwUAAJgOH/EAADziREGp8ovL3Xa+9m39FRcW6LbzNdc333yjLl266LPPPlNCQoJTj925c2fNnDlTM2fOdOpxXYGAAgBwuxMFpRr23HaVVrjvluNAP19tfniIW0PKtm3blJSUpPz8fIWFhbntvN6AgAIAcLv84nKVVlRp6bgEdY9q5/LzZeUVaeb6TOUXl7eIqyigDwoAwIO6R7XT5XGhLl+aG4KGDh2q6dOna/r06QoNDVVkZKTmzZsnwzAkSa+99pquvPJKBQcHKzo6WnfccYfy8vIk1XxUk5SUJElq3769LBaLJk2aJKnm1us//OEP6t69u6xWqzp16qTf/e53duc+evSokpKSFBQUpP79+ysjI8Nu+0cffaRrr71WgYGBio+P14MPPqji4mLb9ry8PI0ePVqBgYHq0qWL1qxZ06w28BQCCgC0ICcKSrX/xNl6lxMFpZ4u0eusXr1abdq00Z49e7Rs2TItWbJEf/rTnyRJFRUVevLJJ/X5559rw4YN+uabb2whJD4+Xm+++aYk6eDBg8rJydGyZcskSSkpKVq8eLHmzZunr776SmvXrlXHjh3tzvv4449r9uzZyszMVM+ePXX77bersrJSknTkyBGNGDFCY8eO1b59+7R+/Xp99NFHmj59uu35kyZN0vHjx/Xhhx/q73//u1566SVbeGoJ+IgHAFqIpvTb8EQ/C28XHx+v559/XhaLRb169dIXX3yh559/XlOmTNG9995r269r16564YUX9NOf/lRFRUVq166dwsPDJUlRUVG2Pijnzp3TsmXL9OKLL2rixImSpG7duumaa66xO+/s2bN10003SZIWLlyoyy67TFlZWerdu7dSU1M1YcIEW2fXHj166IUXXtCQIUP08ssv69ixY/q///s/7dmzRz/96U8lSStWrFCfPn1c2VRORUABgBaisX4bjfWzaOiumZZyh4snXHXVVXYj3w4ePFjPPfecqqqqlJmZqQULFujzzz9Xfn6+qqurJUnHjh3TpZdeWufxDhw4oLKyMt1www0Nnrdfv362r2NiYiTVfGzTu3dvff7559q3b5/dxzaGYdhG7T106JDatGmjgQMH2rb37t27RXXUJaAAQAtzod+GIxq7+sKVF8edP39ew4cP1/Dhw7VmzRp16NBBx44d0/Dhw1VeXv/t04GBTWtjPz8/29cXAtKFAFRUVKT7779fDz74YK3nderUSYcOHXLkpZgSAQUAWoGGrr5wh0vDdu/ebfd4165d6tGjh77++mudPn1aixcvVnx8vCTpk08+sdv3woR5P5zBuUePHgoMDNSWLVs0efLkZtU0YMAAffXVV+revXud23v37q3Kykrt3bvX9hHPwYMHVVBQ0KzzeQKdZAGgFanrrhl33Obbkh07dkzJyck6ePCgXn/9dS1fvlwPPfSQOnXqJH9/fy1fvlxHjx7VO++8oyeffNLuuZdccoksFoveffddff/99yoqKlJAQIAee+wxPfroo/rLX/6iI0eOaNeuXVqxYkWTa3rssce0c+dOTZ8+XZmZmTp8+LDefvttWyfZXr16acSIEbr//vu1e/du7d27V5MnT27y1Rsz4AoKAHiZrLyiJq0zA3fVdTHnufvuu1VaWqpBgwbJ19dXDz30kKZOnSqLxaJVq1bpt7/9rV544QUNGDBAzz77rH7xi1/YnhsXF6eFCxdqzpw5uueee3T33Xdr1apVmjdvntq0aaMnnnhC3333nWJiYvTAAw80uaZ+/fpp+/btevzxx3XttdfKMAx169ZN48aNs+2zcuVKTZ48WUOGDFHHjh311FNPad68ec1uB3ezGBdu5m5BCgsLFRoaqrNnzyokJMTT5QCAW+w/cVY3L/9I7864ps4+KM3tZ9LYcS/W+fPnlZ2drS5duthmt20pI8kOHTpUCQkJWrp0qesK8zJ1fb8vcOT9mysoAOAl4sICtfnhIS3iTp3GanUFM71+NI6AAgBeJC4ssMW8CbekWuF+BBQAAOqxbds2T5fQanEXDwAAMB0CCgAAMB0CCgAAMB0CCgAAMB0CCgAAMB0CCgAAMB1uMwYAeEbBcanktPvOFxQhhcW773weNGnSJBUUFGjDhg1OPe6qVas0c+ZMt0w6SEABALhfwXEpbZBUUeK+c/oFSdP2tLiQ0lqH2yegAADcr+R0TTgZ86oU2dP15zt1SEqfUnPeFhZQWiuH+6Ds2LFDo0ePVmxsrCwWS63LRxaLpc7lmWeese3TuXPnWtsXL1580S8GANDCRPaUYhNcvzQjBHXu3LnWVYuEhAQtWLBAUs373Z/+9CfdcsstCgoKUo8ePfTOO+/Y9t22bZssFos2btyofv36KSAgQFdddZX2799v2+f06dO6/fbbFRcXp6CgIPXt21evv/66bfukSZO0fft2LVu2zPZ++c0330iSvvzyS918880KCQlRcHCwrr32Wh05csSu3meffVYxMTGKiIjQtGnTVFFRYdtWVlam2bNnKy4uTm3btlViYmKtkXNXrVqlTp06KSgoSLfccotOn3bfR3IOB5Ti4mL1799faWlpdW7PycmxW/785z/LYrFo7NixdvstWrTIbr8ZM2Y07xUAAOAhCxcu1G233aZ9+/Zp1KhRmjBhgs6cOWO3zyOPPKLnnntOH3/8sTp06KDRo0fbgsL58+c1cOBAbdy4Ufv379fUqVN11113ac+ePZKkZcuWafDgwZoyZYrt/TI+Pl4nTpzQddddJ6vVqq1bt2rv3r269957VVlZaTvvhx9+qCNHjujDDz/U6tWrtWrVKq1atcq2ffr06crIyNC6deu0b98+3XrrrRoxYoQOHz4sSdq9e7fuu+8+TZ8+XZmZmUpKStJTTz3l4hb9L4c/4hk5cqRGjhxZ7/bo6Gi7x2+//baSkpLUtWtXu/XBwcG19gUAoCWZNGmSbr/9dknS008/rRdeeEF79uzRiBEjbPvMnz9fN954oyRp9erV+slPfqK33npLt912m+Li4jR79mzbvjNmzND777+vv/3tbxo0aJBCQ0Pl7++voKAgu/fMtLQ0hYaGat26dfLz85Mk9expf5Woffv2evHFF+Xr66vevXvrpptu0pYtWzRlyhQdO3ZMK1eu1LFjxxQbGytJmj17tjZt2qSVK1fq6aef1rJlyzRixAg9+uijtuPv3LlTmzZtckFL1ubS24xPnjypjRs36r777qu1bfHixYqIiNAVV1yhZ555xi71/VhZWZkKCwvtFgAAPK1fv362r9u2bauQkBDl5eXZ7TN48GDb1+Hh4erVq5cOHDggSaqqqtKTTz6pvn37Kjw8XO3atdP777+vY8eONXjezMxMXXvttbZwUpfLLrtMvr6+tscxMTG22r744gtVVVWpZ8+eateunW3Zvn277WOiAwcOKDExsd7X4mou7SS7evVqBQcHa8yYMXbrH3zwQQ0YMEDh4eHauXOnUlJSlJOToyVLltR5nNTUVC1cuNCVpQIAYMfHx0eGYdit+2EfDkm1AoLFYlF1dXWTz/HMM89o2bJlWrp0qfr27au2bdtq5syZKi8vb/B5gYGBjR67odqKiork6+urvXv32oUYSWrXrl2T63cllwaUP//5z5owYYICAgLs1icnJ9u+7tevn/z9/XX//fcrNTVVVqu11nFSUlLsnlNYWKj4eHphAwBcp0OHDsrJybE9LiwsVHZ2tsPH2bVrlzp16iRJys/P16FDh9SnTx9J0v/7f/9Pv/zlL3XnnXdKkqqrq3Xo0CFdeumltuf7+/urqqrK7pj9+vXT6tWrVVFR0eBVlPpcccUVqqqqUl5enq699to69+nTp492795d67W4i8s+4vnXv/6lgwcPavLkyY3um5iYqMrKSlvP5B+zWq0KCQmxWwAAcKXrr79er732mv71r3/piy++0MSJE2tdbWiKRYsWacuWLdq/f78mTZqkyMhI/epXv5Ik9ejRQx988IF27typAwcO6P7779fJkyftnt+5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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "unpatched, patched use avgs are 1.00105 1.00164 and their SDs are 0.09076 0.05139\n",
      "And here is the pop distro\n"
     ]
    },
    {
     "data": {
      "image/png": "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O+bqq682M2fOdNZXVVWZzMxMc+utt5qdO3ea1atXm27duplf//rXTp93333XxMfHm2XLlpldu3aZxYsXm4SEBPPxxx930WidW1eM4XvvvWeWL19utm/fbvbt22f+8z//0/Tu3dvcdtttTh22jmF7x88YY5577jlTUlJi9u7da37729+a9PR0U1BQEPU+bIPtG8OLeRs0JvYY1tfXm8mTJ5vLL7/cbN++3Rw5csRZ/ueZSV21jS1dutSkpaWZ1157zezYscPccsstpn///ub06dNdM1jn0BXjt3LlSrNq1Sqza9cus2vXLvPzn//c+P1+89xzzzl9unL8CDMe8uabbxpJZy2zZ882xhjz/PPPn3P94sWLndf4y1/+YqZOnWoyMjJMt27dzLBhw846zfj48eNm5syZpnv37iYYDJo77rjDnDhxIqrPn//8ZzNmzBgTCATM1772NbN06dKz6n355ZfNgAEDTGJiornmmmuiApNbumIMy8rKTE5OjklNTTVJSUlm8ODB5tFHHzW1tbVRtdg4hh0xfvPnzzeZmZkmISHBXH311eaXv/yliUQiUe/DNti+MbyYt0FjYo9hyynB51refPNN5zW6ahuLRCJm4cKFJjMz0wQCATN27Fize/fuThmX1uqK8Vu5cqUZPHiw6datmwkGg+ab3/ymWbNmzVm1dNX4+Ywxpm1zOQAAAN7BMTMAAMBqhBkAAGA1wgwAALAaYQYAAFiNMAMAAKxGmAEAAFYjzAAAAKsRZgAAgNUIMwAAwGqEGQAAYDXCDAAAsBphBgAAWO3/A4IcSb2ilzldAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "checking contiguity of final HDs\n",
      "working on HD 1600 out of 8941\n",
      "working on HD 7200 out of 8941\n",
      "all done checking HD and complement contiguity for all 8941 HDs\n"
     ]
    }
   ],
   "source": [
    "patchedUse, unpUse = [0.]*nUnits, [0.]*nUnits\n",
    "for t in popHDlist:\n",
    "    for u in HDunitList[t]:\n",
    "        patchedUse[u] += HDweight[t] * nDistricts\n",
    "    for u in unpatchedHDlist[t]:\n",
    "        unpUse[u] += HDweight[t] * nDistricts\n",
    "plt.hist(patchedUse,bins=50, label=\"patched\",histtype=\"step\")\n",
    "plt.hist(unpUse, bins=50, label=\"unpatched\",histtype=\"step\")\n",
    "plt.legend()\n",
    "plt.show()\n",
    "patchedAvg, patchedSD = getWeightedAvgAndSD(patchedUse,unitPop)\n",
    "unpatchedAvg, unpatchedSD = getWeightedAvgAndSD(unpUse,unitPop)\n",
    "print(\"unpatched, patched use avgs are\",r5(unpatchedAvg), r5(patchedAvg),\"and their SDs are\",r5(unpatchedSD), r5(patchedSD) )\n",
    "print(\"And here is the pop distro\")\n",
    "plt.hist([HDvPop[t] for t in popHDlist])\n",
    "plt.axvline(aDP, ls=\"--\",color=\"orange\")\n",
    "plt.show()\n",
    "print(\"checking contiguity of final HDs\")\n",
    "for t in popHDlist:\n",
    "    if t%800 == 0:\n",
    "        print(\"working on HD\",t,\"out of\",nHDs)\n",
    "    unbroken, noEnclave, sList, eList = enclaveCheck(HDunitList[t], unitNbrs)  #these HDunitLists now appear to be sets\n",
    "    if not unbroken or not noEnclave:\n",
    "        print(\"uh-oh, HD\",t,\"has contiguity, complement-contiguity of\",unbroken, noEnclave)\n",
    "print(\"all done checking HD and complement contiguity for all\",nHDs,\"HDs\")"
   ]
  },
  {
   "cell_type": "raw",
   "id": "e776aed8-86a8-46dd-b49c-a9cbde615b7c",
   "metadata": {},
   "source": [
    "#optional intermediate save - skip for OH legisl\n",
    "print(\"Lets write these UNIT lists to a file\")\n",
    "HDvPop = [0. for t in range(nHDs)]  #writing UNIT lists to a file\n",
    "tList = [t for t in range(nHDs)]\n",
    "for t in popHDlist:\n",
    "    for u in HDunitList[t]:\n",
    "        HDvPop[t] += unitPop[u]\n",
    "outDF = pd.DataFrame( {\"tract\":tList,\"HDweight\":HDweight,\"HDvPop\":HDvPop,\"HDunitList\":HDunitList,\n",
    "                      \"centroid x\":hdCPx, \"centroid y\":hdCPy} )\n",
    "outname = STATE+str(int(nHDs))+\"LegislunderPatched.csv\" #\"contigUnpatchedB.csv\"\n",
    "outpath = \"2024state_HD_output/\"+outname\n",
    "outDF.to_csv(outpath)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 139,
   "id": "86c7e124-e6bb-4a67-bd19-e073de13e94c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "119261.8918918919 118662.28571428571 119691.27777777778 5984.56388888889\n"
     ]
    }
   ],
   "source": [
    "print(countyADP[24], countyADP[30],aDP,maxGap)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 148,
   "id": "77c07848-50c2-4fe9-8841-768b02bf4ac4",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "default use threshold for moving on to next overused unit is 1.02\n"
     ]
    },
    {
     "name": "stdin",
     "output_type": "stream",
     "text": [
      "enter updated stopMaxUse value 1.02\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "there are currently 733 units out of 1755 with usage above 1.02\n",
      "maxExchangePop is currently 0.05 fraction of avgDistrictPop\n",
      "this block reduces overuse, with exchanges up to 5933\n",
      "current avg and SD of unit usage are 1.00164 0.05139 . Now trying to reduce up to 733 units' overusage\n",
      "starting to reduce usage for unit 569 with usage 1.14203 . Total units tried = 1\n",
      "all done trying to reduce usage of unit 569 final usage = 1.0159 0 sec elapsed 7 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 1.00156 0.05015\n",
      "starting to reduce usage for unit 1049 with usage 1.09784 . Total units tried = 2\n",
      "try to drop unit 1049 from 8 th HD.  usage down to 1.0978443987680975\n",
      "try to drop unit 1049 from 16 th HD.  usage down to 1.0978443987680975\n",
      "try to drop unit 1049 from 24 th HD.  usage down to 1.0978443987680975\n",
      "try to drop unit 1049 from 32 th HD.  usage down to 1.0978443987680975\n",
      "try to drop unit 1049 from 40 th HD.  usage down to 1.0978443987680975\n",
      "all done trying to reduce usage of unit 1049 final usage = 1.09784 0 sec elapsed 0 0 successful, failed patches, couldn't start= 45\n",
      "current avg and SD of usage are 1.00156 0.05015\n",
      "starting to reduce usage for unit 406 with usage 1.10237 . Total units tried = 3\n",
      "try to drop unit 406 from 9 th HD.  usage down to 1.0228523685465114\n",
      "all done trying to reduce usage of unit 406 final usage = 1.01111 0 sec elapsed 7 2 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 1.00154 0.04957\n",
      "starting to reduce usage for unit 882 with usage 1.08891 . Total units tried = 4\n",
      "all done trying to reduce usage of unit 882 final usage = 1.01491 0 sec elapsed 5 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 1.00152 0.04912\n",
      "starting to reduce usage for unit 1332 with usage 1.09233 . Total units tried = 5\n",
      "all done trying to reduce usage of unit 1332 final usage = 1.01499 1 sec elapsed 6 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 1.00151 0.04864\n",
      "starting to reduce usage for unit 981 with usage 1.08984 . Total units tried = 6\n",
      "try to drop unit 981 from 6 th HD.  usage down to 1.0273273218830237\n",
      "all done trying to reduce usage of unit 981 final usage = 1.00718 1 sec elapsed 6 0 successful, failed patches, couldn't start= 1\n",
      "current avg and SD of usage are 1.00148 0.04821\n",
      "starting to reduce usage for unit 509 with usage 1.08686 . Total units tried = 7\n",
      "try to drop unit 509 from 8 th HD.  usage down to 1.0534265309955269\n",
      "all done trying to reduce usage of unit 509 final usage = 1.01713 1 sec elapsed 6 4 successful, failed patches, couldn't start= 2\n",
      "current avg and SD of usage are 1.00145 0.04764\n",
      "starting to reduce usage for unit 1377 with usage 1.08902 . Total units tried = 8\n",
      "try to drop unit 1377 from 4 th HD.  usage down to 1.0331380631768834\n",
      "all done trying to reduce usage of unit 1377 final usage = 1.0072 2 sec elapsed 4 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 1.00141 0.04735\n",
      "starting to reduce usage for unit 1051 with usage 1.08739 . Total units tried = 9\n",
      "all done trying to reduce usage of unit 1051 final usage = 1.01496 2 sec elapsed 5 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 1.00139 0.04702\n",
      "starting to reduce usage for unit 1056 with usage 1.08144 . Total units tried = 10\n",
      "try to drop unit 1056 from 8 th HD.  usage down to 1.0657805103009725\n",
      "try to drop unit 1056 from 16 th HD.  usage down to 1.0657805103009725\n",
      "try to drop unit 1056 from 24 th HD.  usage down to 1.0657805103009725\n",
      "try to drop unit 1056 from 32 th HD.  usage down to 1.0657805103009725\n",
      "try to drop unit 1056 from 40 th HD.  usage down to 1.0657805103009725\n",
      "all done trying to reduce usage of unit 1056 final usage = 1.06578 2 sec elapsed 1 0 successful, failed patches, couldn't start= 39\n",
      "current avg and SD of usage are 1.00139 0.04692\n",
      "starting to reduce usage for unit 1605 with usage 1.07936 . Total units tried = 11\n",
      "all done trying to reduce usage of unit 1605 final usage = 1.00813 2 sec elapsed 6 0 successful, failed patches, couldn't start= 1\n",
      "current avg and SD of usage are 1.00137 0.0466\n",
      "starting to reduce usage for unit 1572 with usage 1.08054 . Total units tried = 12\n",
      "try to drop unit 1572 from 6 th HD.  usage down to 1.0805379485075988\n",
      "try to drop unit 1572 from 12 th HD.  usage down to 1.0805379485075988\n",
      "try to drop unit 1572 from 18 th HD.  usage down to 1.0805379485075988\n",
      "try to drop unit 1572 from 24 th HD.  usage down to 1.0805379485075988\n",
      "try to drop unit 1572 from 30 th HD.  usage down to 1.0805379485075988\n",
      "all done trying to reduce usage of unit 1572 final usage = 1.08054 3 sec elapsed 0 0 successful, failed patches, couldn't start= 30\n",
      "current avg and SD of usage are 1.00137 0.0466\n",
      "starting to reduce usage for unit 1102 with usage 1.0775 . Total units tried = 13\n",
      "all done trying to reduce usage of unit 1102 final usage = 1.01783 3 sec elapsed 4 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 1.00136 0.04635\n",
      "starting to reduce usage for unit 323 with usage 1.08466 . Total units tried = 14\n",
      "try to drop unit 323 from 7 th HD.  usage down to 1.0240406146615364\n",
      "all done trying to reduce usage of unit 323 final usage = 1.01343 3 sec elapsed 5 0 successful, failed patches, couldn't start= 2\n",
      "current avg and SD of usage are 1.00133 0.04607\n",
      "starting to reduce usage for unit 90 with usage 1.07634 . Total units tried = 15\n",
      "all done trying to reduce usage of unit 90 final usage = 1.01871 4 sec elapsed 4 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 1.0013 0.0458\n",
      "starting to reduce usage for unit 1179 with usage 1.07427 . Total units tried = 16\n",
      "try to drop unit 1179 from 5 th HD.  usage down to 1.065562502691102\n",
      "try to drop unit 1179 from 10 th HD.  usage down to 1.0460172819753935\n",
      "try to drop unit 1179 from 15 th HD.  usage down to 1.0460172819753935\n",
      "try to drop unit 1179 from 20 th HD.  usage down to 1.0460172819753935\n",
      "try to drop unit 1179 from 25 th HD.  usage down to 1.0460172819753935\n",
      "all done trying to reduce usage of unit 1179 final usage = 1.04602 4 sec elapsed 2 0 successful, failed patches, couldn't start= 26\n",
      "current avg and SD of usage are 1.00129 0.04565\n",
      "starting to reduce usage for unit 1172 with usage 1.07126 . Total units tried = 17\n",
      "all done trying to reduce usage of unit 1172 final usage = 1.0183 4 sec elapsed 4 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 1.00129 0.04527\n",
      "starting to reduce usage for unit 1574 with usage 1.07017 . Total units tried = 18\n",
      "try to drop unit 1574 from 5 th HD.  usage down to 1.0701742021306722\n",
      "try to drop unit 1574 from 10 th HD.  usage down to 1.0701742021306722\n",
      "try to drop unit 1574 from 15 th HD.  usage down to 1.0701742021306722\n",
      "try to drop unit 1574 from 20 th HD.  usage down to 1.0701742021306722\n",
      "try to drop unit 1574 from 25 th HD.  usage down to 1.0701742021306722\n",
      "try to drop unit 1574 from 30 th HD.  usage down to 1.0701742021306722\n",
      "all done trying to reduce usage of unit 1574 final usage = 1.07017 5 sec elapsed 0 0 successful, failed patches, couldn't start= 30\n",
      "current avg and SD of usage are 1.00129 0.04527\n",
      "starting to reduce usage for unit 1525 with usage 1.07017 . Total units tried = 19\n",
      "try to drop unit 1525 from 5 th HD.  usage down to 1.0701742021306722\n",
      "try to drop unit 1525 from 10 th HD.  usage down to 1.0701742021306722\n",
      "try to drop unit 1525 from 15 th HD.  usage down to 1.0701742021306722\n",
      "try to drop unit 1525 from 20 th HD.  usage down to 1.0701742021306722\n",
      "try to drop unit 1525 from 25 th HD.  usage down to 1.0701742021306722\n",
      "try to drop unit 1525 from 30 th HD.  usage down to 1.0701742021306722\n",
      "all done trying to reduce usage of unit 1525 final usage = 1.07017 5 sec elapsed 0 0 successful, failed patches, couldn't start= 30\n",
      "current avg and SD of usage are 1.00129 0.04527\n",
      "starting to reduce usage for unit 1523 with usage 1.07017 . Total units tried = 20\n",
      "try to drop unit 1523 from 5 th HD.  usage down to 1.0701742021306722\n",
      "try to drop unit 1523 from 10 th HD.  usage down to 1.0701742021306722\n",
      "try to drop unit 1523 from 15 th HD.  usage down to 1.0701742021306722\n",
      "try to drop unit 1523 from 20 th HD.  usage down to 1.0701742021306722\n",
      "try to drop unit 1523 from 25 th HD.  usage down to 1.0701742021306722\n",
      "try to drop unit 1523 from 30 th HD.  usage down to 1.0701742021306722\n",
      "all done trying to reduce usage of unit 1523 final usage = 1.07017 5 sec elapsed 0 0 successful, failed patches, couldn't start= 30\n",
      "current avg and SD of usage are 1.00129 0.04527\n",
      "starting to reduce usage for unit 1118 with usage 1.06991 . Total units tried = 21\n",
      "all done trying to reduce usage of unit 1118 final usage = 1.00904 5 sec elapsed 5 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 1.00128 0.04501\n",
      "starting to reduce usage for unit 468 with usage 1.06764 . Total units tried = 22\n",
      "all done trying to reduce usage of unit 468 final usage = 1.01885 6 sec elapsed 4 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 1.00126 0.0448\n",
      "starting to reduce usage for unit 1640 with usage 1.06602 . Total units tried = 23\n",
      "try to drop unit 1640 from 5 th HD.  usage down to 1.020627780333538\n",
      "all done trying to reduce usage of unit 1640 final usage = 1.00732 6 sec elapsed 5 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 1.00123 0.04456\n",
      "starting to reduce usage for unit 367 with usage 1.06522 . Total units tried = 24\n",
      "try to drop unit 367 from 7 th HD.  usage down to 1.0315746006674404\n",
      "all done trying to reduce usage of unit 367 final usage = 1.01749 6 sec elapsed 4 2 successful, failed patches, couldn't start= 2\n",
      "current avg and SD of usage are 1.00121 0.04409\n",
      "starting to reduce usage for unit 1577 with usage 1.06492 . Total units tried = 25\n",
      "try to drop unit 1577 from 7 th HD.  usage down to 1.0649168647695615\n",
      "try to drop unit 1577 from 14 th HD.  usage down to 1.0649168647695615\n",
      "try to drop unit 1577 from 21 th HD.  usage down to 1.0649168647695615\n",
      "try to drop unit 1577 from 28 th HD.  usage down to 1.0649168647695615\n",
      "try to drop unit 1577 from 35 th HD.  usage down to 1.0649168647695615\n",
      "all done trying to reduce usage of unit 1577 final usage = 1.06492 6 sec elapsed 0 0 successful, failed patches, couldn't start= 39\n",
      "current avg and SD of usage are 1.00121 0.04409\n",
      "starting to reduce usage for unit 1471 with usage 1.07731 . Total units tried = 26\n",
      "try to drop unit 1471 from 6 th HD.  usage down to 1.0532366878253403\n",
      "all done trying to reduce usage of unit 1471 final usage = 0.9973 7 sec elapsed 6 0 successful, failed patches, couldn't start= 3\n",
      "current avg and SD of usage are 1.00119 0.04376\n",
      "starting to reduce usage for unit 1255 with usage 1.06425 . Total units tried = 27\n",
      "all done trying to reduce usage of unit 1255 final usage = 1.01646 7 sec elapsed 3 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 1.00118 0.04356\n",
      "starting to reduce usage for unit 479 with usage 1.06314 . Total units tried = 28\n",
      "all done trying to reduce usage of unit 479 final usage = 1.0024 7 sec elapsed 3 0 successful, failed patches, couldn't start= 2\n",
      "current avg and SD of usage are 1.00115 0.0431\n",
      "starting to reduce usage for unit 308 with usage 1.06203 . Total units tried = 29\n",
      "all done trying to reduce usage of unit 308 final usage = 1.01559 8 sec elapsed 4 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 1.00115 0.04275\n",
      "starting to reduce usage for unit 207 with usage 1.06202 . Total units tried = 30\n",
      "all done trying to reduce usage of unit 207 final usage = 1.01949 8 sec elapsed 3 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 1.00113 0.04251\n",
      "starting to reduce usage for unit 1524 with usage 1.06115 . Total units tried = 31\n",
      "try to drop unit 1524 from 6 th HD.  usage down to 1.0611520410452577\n",
      "try to drop unit 1524 from 12 th HD.  usage down to 1.0611520410452577\n",
      "all done trying to reduce usage of unit 1524 final usage = 1.01511 8 sec elapsed 3 0 successful, failed patches, couldn't start= 14\n",
      "current avg and SD of usage are 1.00114 0.04229\n",
      "starting to reduce usage for unit 1178 with usage 1.08127 . Total units tried = 32\n",
      "try to drop unit 1178 from 5 th HD.  usage down to 1.0562552547312407\n",
      "try to drop unit 1178 from 10 th HD.  usage down to 1.0304632775019316\n",
      "all done trying to reduce usage of unit 1178 final usage = 1.01815 8 sec elapsed 5 0 successful, failed patches, couldn't start= 8\n",
      "current avg and SD of usage are 1.00111 0.04195\n",
      "starting to reduce usage for unit 568 with usage 1.06006 . Total units tried = 33\n",
      "all done trying to reduce usage of unit 568 final usage = 1.01277 9 sec elapsed 4 0 successful, failed patches, couldn't start= 1\n",
      "current avg and SD of usage are 1.00111 0.0417\n",
      "starting to reduce usage for unit 514 with usage 1.05925 . Total units tried = 34\n",
      "try to drop unit 514 from 6 th HD.  usage down to 1.0298722906303124\n",
      "all done trying to reduce usage of unit 514 final usage = 1.0159 9 sec elapsed 3 2 successful, failed patches, couldn't start= 1\n",
      "current avg and SD of usage are 1.00111 0.04151\n",
      "starting to reduce usage for unit 1328 with usage 1.07401 . Total units tried = 35\n",
      "all done trying to reduce usage of unit 1328 final usage = 1.01542 9 sec elapsed 4 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 1.0011 0.04134\n",
      "starting to reduce usage for unit 1055 with usage 1.0589 . Total units tried = 36\n",
      "all done trying to reduce usage of unit 1055 final usage = 1.00751 9 sec elapsed 3 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 1.00107 0.04113\n",
      "starting to reduce usage for unit 541 with usage 1.05826 . Total units tried = 37\n",
      "all done trying to reduce usage of unit 541 final usage = 1.00755 10 sec elapsed 3 0 successful, failed patches, couldn't start= 1\n",
      "current avg and SD of usage are 1.00106 0.04091\n",
      "starting to reduce usage for unit 1675 with usage 1.0576 . Total units tried = 38\n",
      "all done trying to reduce usage of unit 1675 final usage = 1.01723 10 sec elapsed 2 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 1.00105 0.04081\n",
      "starting to reduce usage for unit 26 with usage 1.05734 . Total units tried = 39\n",
      "try to drop unit 26 from 6 th HD.  usage down to 1.0325943012342351\n",
      "all done trying to reduce usage of unit 26 final usage = 1.01398 10 sec elapsed 3 0 successful, failed patches, couldn't start= 3\n",
      "current avg and SD of usage are 1.001 0.04076\n",
      "starting to reduce usage for unit 5 with usage 1.05726 . Total units tried = 40\n",
      "all done trying to reduce usage of unit 5 final usage = 1.01363 10 sec elapsed 4 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 1.001 0.04064\n",
      "starting to reduce usage for unit 875 with usage 1.05716 . Total units tried = 41\n",
      "all done trying to reduce usage of unit 875 final usage = 1.01294 11 sec elapsed 3 0 successful, failed patches, couldn't start= 2\n",
      "current avg and SD of usage are 1.00099 0.04044\n",
      "starting to reduce usage for unit 641 with usage 1.05643 . Total units tried = 42\n",
      "all done trying to reduce usage of unit 641 final usage = 1.01966 11 sec elapsed 4 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 1.00098 0.04031\n",
      "starting to reduce usage for unit 921 with usage 1.07312 . Total units tried = 43\n",
      "try to drop unit 921 from 5 th HD.  usage down to 1.0473085578184738\n",
      "all done trying to reduce usage of unit 921 final usage = 1.01053 11 sec elapsed 5 0 successful, failed patches, couldn't start= 4\n",
      "current avg and SD of usage are 1.00096 0.04005\n",
      "starting to reduce usage for unit 1240 with usage 1.056 . Total units tried = 44\n",
      "all done trying to reduce usage of unit 1240 final usage = 1.01173 11 sec elapsed 3 0 successful, failed patches, couldn't start= 1\n",
      "current avg and SD of usage are 1.00096 0.03989\n"
     ]
    }
   ],
   "source": [
    "#SECOND PATCHING BLOCK -- OVERUSERS.  applies a suppression of LONG STRINGS.  run second for most states except MA\n",
    "maxSD = 0.04 #0.06  #0.08  #0.04  #oops, did 0.06 first for 0.36 / 1.5 case\n",
    "stopMaxUse = 1.02 #1.+  2.* maxSD  #0.5*maxSD  #don't be too aggressive; may create long chains\n",
    "print(\"default use threshold for moving on to next overused unit is\",r5(stopMaxUse) )\n",
    "stopMaxUse = float(input(\"enter updated stopMaxUse value\"))\n",
    "nInPlay = 0\n",
    "for u in range(nUnits):\n",
    "    if unitUse[u] > stopMaxUse:\n",
    "        nInPlay +=1\n",
    "print(\"there are currently\",nInPlay,\"units out of\",nUnits,\"with usage above\",stopMaxUse)\n",
    "nBigUsers = 5\n",
    "maxExchangePop = 0.05*aDP\n",
    "print(\"maxExchangePop is currently\",r5(maxExchangePop/aDP),\"fraction of avgDistrictPop\")\n",
    "newMEPratio = 0.05 #float(input(\"Enter updated maxExchangePop fraction\"))\n",
    "maxExchangePop = newMEPratio*aDP \n",
    "print(\"this block reduces overuse, with exchanges up to\",int(maxExchangePop)) #1/25/24\n",
    "maxGap = 0.9 * np.median(unitPop) \n",
    "maxNtries = 0\n",
    "for u in range(nUnits):\n",
    "    if unitUse[u] > stopMaxUse:\n",
    "        maxNtries +=1\n",
    "#maxNtries = int(currSD * nUnits / nDistricts)   #try up to about 10% of the districts a unit is drawn into\n",
    "#maxNtries = 10 #overrirde\n",
    "currAvg, currSD = getWeightedAvgAndSD(unitUse,unitPop)\n",
    "attemptedBigUs = list()\n",
    "print(\"current avg and SD of unit usage are\",r5(currAvg), r5(currSD),\". Now trying to reduce up to\",maxNtries,\"units' overusage\" )\n",
    "startTime = time.time()\n",
    "while currSD > maxSD and len(attemptedBigUs) < maxNtries: \n",
    "    #each round, find the (5) most overused not-yet-tried units. Pick the unit w/ most overuse of it + 1-nbrs\n",
    "    idx = np.argsort(unitUse)\n",
    "    idxNo, nBigFound, bigUsers = 0,0,list()\n",
    "    while nBigFound < nBigUsers:\n",
    "        consideredBigU = idx[-idxNo-1]\n",
    "        if consideredBigU not in attemptedBigUs:\n",
    "            bigUsers.append(consideredBigU)\n",
    "            nBigFound +=1\n",
    "        idxNo +=1\n",
    "    OUUclusters = [ [b] + unitNbrs[b] for b in bigUsers ]\n",
    "    bigOverUse = [np.sum([(unitUse[j] - 1.) for j in OUUclusters[i] ]) for i in range(nBigUsers) ]\n",
    "    bigI = bigOverUse.index(np.max(bigOverUse))\n",
    "    OUU = bigUsers[ bigI ]  #pick the unit that centers cluster with most overuse\n",
    "    attemptedBigUs.append(OUU)  #so we don't try this unit again in a future loop\n",
    "    OUUc = OUUclusters[bigI]  #the list of this unit and ALL its neighbors (to be curated below ...)\n",
    "    print(\"starting to reduce usage for unit\",OUU,\"with usage\",r5(unitUse[OUU]),\". Total units tried =\",len(attemptedBigUs) )\n",
    "    for u in OUUc.copy():\n",
    "        if unitUse[u] < 1.:\n",
    "            OUUc.remove(u)  #...drop any underused neighbors of the primary OUU from the target sheddable cluster\n",
    "    OUU2nbrSet = set( unitNbrs[OUU])\n",
    "    for u in OUUc:\n",
    "        OUU2nbrSet = OUU2nbrSet.union(set(unitNbrs[u])) \n",
    "    for u in OUUc:\n",
    "        OUU2nbrSet = OUU2nbrSet.difference({u})\n",
    "    ouuHDs, ouuDists = list(), list()\n",
    "    for t in popHDlist:  #finding all HDs with at least one cluster member on the boundary\n",
    "        if OUU in HDunitList[t]:\n",
    "            HDadjoinSet = set( getAdjoiners(HDunitList[t],unitNbrs) )\n",
    "            if len(HDadjoinSet.intersection(OUU2nbrSet) ) > 0: #the OUU or one of its overused 1-neighbors adjoins the complement\n",
    "                ouuHDs.append(t)  #so we can shed the OOUc to the complement\n",
    "                ouuDists.append( unitCP[OUU].distance(hdCP[t]) / avgDist[t] )\n",
    "    nPatchSuccess, nPatchFail, nCouldntStart, idxNo, idx0 = 0, 0, 0, 0, np.argsort(ouuDists)\n",
    "    while unitUse[OUU] > stopMaxUse and idxNo > -0.5*len(ouuHDs): #arbitrarily only examine 50% of HDs, biasing farthest ones\n",
    "        aDP = countyADP[unitCountyNo[OUU]]\n",
    "        maxGap = 0.01 * aDP   #0.05 * aDP  #legislative, but should be able to get close\n",
    "\n",
    "        idxNo -=1\n",
    "        if idxNo % int(0.1*len(ouuHDs)) == 0:\n",
    "            print(\"try to drop unit\",OUU,\"from\",abs(idxNo),\"th HD.  usage down to\",unitUse[OUU] )\n",
    "        t = ouuHDs[idx0[idxNo]]\n",
    "        trySet = set(HDunitList[t]).difference(set(OUUc))\n",
    "        contig,complementContig, __, ___ = enclaveCheck(list(trySet), unitNbrs)\n",
    "        if not (contig and complementContig):  #dropping the cluster creates a problem (likely an HD discontig).  Try something simpler ...\n",
    "            if len(set(unitNbrs[OUU]).intersection(HDadjoinSet) )  > 0:  #Yay! The OUU itself on border.  Try dropping just it, not the full cluster\n",
    "                HDouuSet = {OUU}\n",
    "                trySet = set(HDunitList[t]).difference( {OUU} )\n",
    "                contig,complementContig, __, ___ = enclaveCheck(list(trySet), unitNbrs)\n",
    "        else:\n",
    "            HDouuSet = set(HDunitList[t]).intersection(set(OUUc))\n",
    "        if contig and complementContig:  #we can at least drop the cluster, let's go for more\n",
    "            #HDouuSet = set(HDunitList[t]).intersection(set(OUUc))  #the subset of the OUU cluster that's in this HD.  Defined above\n",
    "            HDouuCpop = np.sum([unitPop[u] for u in HDouuSet])\n",
    "            giveUpOnShedding = False            \n",
    "            shedCandidates, shedScores = list(), list()\n",
    "            bdryCandidates = getBdryNonEdgers(trySet, unitNbrs)  #new - any boundary unit can be shed, even if far from OUUc\n",
    "            for u in bdryCandidates:\n",
    "                if HDouuCpop + unitPop[u] <= maxExchangePop:\n",
    "                    shedCandidates.append(u)\n",
    "                    shedScores.append((unitUse[u] - 1.) * unitCP[u].distance(hdCP[t])/avgDist[t])  #bias toward far, overused\n",
    "            if len(shedCandidates) == 0:\n",
    "                giveUpOnShedding = True\n",
    "            while HDouuCpop < maxExchangePop and not giveUpOnShedding:\n",
    "                idx, ij, notYetPicked = np.argsort(shedScores), 0, True\n",
    "                while ij < len(shedScores) and notYetPicked:\n",
    "                    listNo = idx[-1-ij]   #work from high to low score\n",
    "                    shedU = shedCandidates[listNo]\n",
    "                    if shedScores[listNo] <= 0:  #we're delving into the underused; stop adding to shed list\n",
    "                        break\n",
    "                    contig,cContig, __, ___ = enclaveCheck(list(trySet.difference({shedU}) ), unitNbrs)\n",
    "                    if contig and cContig:\n",
    "                        notYetPicked = False\n",
    "                        HDouuCpop += unitPop[shedU]\n",
    "                        #print(\"shedding unit\",shedU,\"from HD\",t,\"total shed Pop now\", HDouuCpop)\n",
    "                        HDouuSet.add(shedU)\n",
    "                        trySet.remove(shedU)\n",
    "                        del shedScores[shedCandidates.index(shedU)]\n",
    "                        del shedCandidates[shedCandidates.index(shedU)]\n",
    "                        newSheddables = set(unitNbrs[shedU]).intersection(trySet)\n",
    "                        for u in newSheddables:\n",
    "                            if HDouuCpop + unitPop[u] <= maxExchangePop and u not in shedCandidates:\n",
    "                                shedCandidates.append(u)\n",
    "                                shedScores.append((unitUse[u] - 1.) * unitCP[u].distance(hdCP[t])/avgDist[t])\n",
    "                    else:\n",
    "                        ij +=1\n",
    "                if notYetPicked:\n",
    "                    giveUpOnShedding = True  #all candidates would create a discontig, so can't shed any more units\n",
    "            shedSet = HDouuSet.copy()  #set(OUUc).intersection(set(HDunitList[t]))\n",
    "            trySet = set(HDunitList[t]).difference(shedSet) \n",
    "            gap = aDP - np.sum([unitPop[u] for u in trySet])\n",
    "            nearHDlist, nearHDscore = list(), list()  #these will be dynamic lists of the nearby underused units\n",
    "            for u in trySet:\n",
    "                for uu in unitNbrs[u]:\n",
    "                    if uu not in HDunitList[t] and uu not in nearHDlist and unitPop[uu] < gap + maxGap and unitUse[uu] < 1.01:\n",
    "                        nearHDlist.append(uu)\n",
    "                        nearHDscore.append(5.*(unitUse[uu]-1.) + unitCP[uu].distance(hdCP[t]) / avgDist[t] )\n",
    "                        #bias toward UNDERUSED, close\n",
    "            addedSet = set( )    \n",
    "            stillGoing = True \n",
    "            while gap > maxGap and len(nearHDlist) > 0 and stillGoing:   #add the lowest-scoring neighboring underused unit until we've roughly squared the HDpop\n",
    "                nearHDscore2 = nearHDscore.copy()\n",
    "                for ij, uu in enumerate(nearHDlist):\n",
    "                    nHDnbrs = len( set(unitNbrs[uu]).intersection(trySet) )\n",
    "                    if nHDnbrs == 1 :  #BIAS AGAINST CREATING A SLIM CHAIN\n",
    "                        nearHDscore2[ij] *= 0.5   #make this score closer to zero (less negative)  #NEW FOR GA 3/11/24\n",
    "                idx, ij, notYetPicked = np.argsort(nearHDscore2), 0, True   #originally, used nearHDscore itself here\n",
    "                while ij < len(nearHDscore) and notYetPicked:        \n",
    "                    listNo = idx[ij]   #nearHDscore.index(np.min(nearHDscore))\n",
    "                    unitNoToAdd = nearHDlist[listNo]  #add this unit ...                            \n",
    "                    canAdd  = wontEnclave(unitNoToAdd, list(trySet), unitNbrs, borderUnits)\n",
    "                    if canAdd:\n",
    "                        notYetPicked = False\n",
    "                    else:\n",
    "                        ij +=1\n",
    "                if notYetPicked:\n",
    "                    stillGoing = False  #can't add any more units; we can't without creating an enclave\n",
    "                else:\n",
    "                    gap -= unitPop[unitNoToAdd]\n",
    "                    addedSet.add(unitNoToAdd)\n",
    "                    trySet.add( unitNoToAdd)\n",
    "                    for uu in unitNbrs[unitNoToAdd]:             # ... and add its nonHD neighbors to future candidates\n",
    "                        if uu not in trySet and uu not in nearHDlist and unitPop[uu] < gap + maxGap and unitUse[uu] < 1.01:  \n",
    "                            nearHDlist.append(uu)\n",
    "                            nearHDscore.append(5.* (unitUse[uu]-1.) + unitCP[uu].distance(hdCP[t]) / avgDist[t] ) \n",
    "                            #bias toward UNDERUSED, ~close\n",
    "                    del nearHDscore[nearHDlist.index(unitNoToAdd)]        \n",
    "                    del nearHDlist[ nearHDlist.index(unitNoToAdd) ]\n",
    "                    for ijj, uu in enumerate(nearHDlist.copy()):\n",
    "                        if unitPop[uu] > gap + maxGap:   #with the added pop from another unit, this unit is now too big to add\n",
    "                            del nearHDscore[nearHDlist.index(uu)]\n",
    "                            del nearHDlist[ nearHDlist.index(uu)]\n",
    "            currPop = np.sum([unitPop[u] for u in trySet])\n",
    "            if abs(currPop - aDP) <= 2.* maxGap:\n",
    "                for u in shedSet:\n",
    "                    unitUse[u] -= HDweight[t] * nDistricts\n",
    "                for u in addedSet:\n",
    "                    unitUse[u] += HDweight[t] * nDistricts\n",
    "                HDunitList[t] = list(trySet)\n",
    "                HDvPop[t]    = currPop\n",
    "                nPatchSuccess +=1\n",
    "            else:\n",
    "                nPatchFail +=1\n",
    "            # end of shed + add patching on this HD\n",
    "            #print(\"shed and patched for HD, OUU\",t,OUU)\n",
    "        else:\n",
    "            nCouldntStart +=1\n",
    "            #print(\"Due to discontiguity, can't drop OUU cluster for HD, OUU\", t, OUU)\n",
    "    print(\"all done trying to reduce usage of unit\",OUU,\"final usage =\",r5(unitUse[OUU]),int(time.time()-startTime),\"sec elapsed\",\n",
    "         nPatchSuccess,nPatchFail,\"successful, failed patches, couldn't start=\",nCouldntStart)\n",
    "    currAvg, currSD = getWeightedAvgAndSD(unitUse,unitPop)\n",
    "    print(\"current avg and SD of usage are\",r5(currAvg), r5(currSD) )\n",
    "            \n",
    "    "
   ]
  },
  {
   "cell_type": "raw",
   "id": "2c9956cd-7ed2-4e79-827a-333d214fb782",
   "metadata": {},
   "source": [
    "#repeat above with error fix\n",
    "#SECOND PATCHING BLOCK -- OVERUSERS.  applies a suppression of LONG STRINGS.  run second for most states except MA\n",
    "maxSD = 0.04 #0.06  #0.08  #0.04  #oops, did 0.06 first for 0.36 / 1.5 case\n",
    "stopMaxUse = 1.03 #1.+  2.* maxSD  #0.5*maxSD  #don't be too aggressive; may create long chains\n",
    "print(\"default use threshold for moving on to next overused unit is\",r5(stopMaxUse) )\n",
    "stopMaxUse = float(input(\"enter updated stopMaxUse value\"))\n",
    "nInPlay = 0\n",
    "for u in range(nUnits):\n",
    "    if unitUse[u] > stopMaxUse:\n",
    "        nInPlay +=1\n",
    "print(\"there are currently\",nInPlay,\"units out of\",nUnits,\"with usage above\",stopMaxUse)\n",
    "nBigUsers = 5\n",
    "maxExchangePop = 0.05*aDP\n",
    "print(\"maxExchangePop is currently\",r5(maxExchangePop/aDP),\"fraction of avgDistrictPop\")\n",
    "newMEPratio = 0.05 #float(input(\"Enter updated maxExchangePop fraction\"))\n",
    "maxExchangePop = newMEPratio*aDP \n",
    "print(\"this block reduces overuse, with exchanges up to\",int(maxExchangePop)) #1/25/24\n",
    "maxGap = 0.9 * np.median(unitPop) \n",
    "maxNtries = 0\n",
    "for u in range(nUnits):\n",
    "    if unitUse[u] > stopMaxUse:\n",
    "        maxNtries +=1\n",
    "#maxNtries = int(currSD * nUnits / nDistricts)   #try up to about 10% of the districts a unit is drawn into\n",
    "#maxNtries = 10 #overrirde\n",
    "currAvg, currSD = getWeightedAvgAndSD(unitUse,unitPop)\n",
    "attemptedBigUs = list()\n",
    "print(\"current avg and SD of unit usage are\",r5(currAvg), r5(currSD),\". Now trying to reduce up to\",maxNtries,\"units' overusage\" )\n",
    "startTime = time.time()\n",
    "while currSD > maxSD and len(attemptedBigUs) < maxNtries: \n",
    "    #each round, find the (5) most overused not-yet-tried units. Pick the unit w/ most overuse of it + 1-nbrs\n",
    "    idx = np.argsort(unitUse)\n",
    "    idxNo, nBigFound, bigUsers = 0,0,list()\n",
    "    while nBigFound < nBigUsers:\n",
    "        consideredBigU = idx[-idxNo-1]\n",
    "        if consideredBigU not in attemptedBigUs:\n",
    "            bigUsers.append(consideredBigU)\n",
    "            nBigFound +=1\n",
    "        idxNo +=1\n",
    "    OUUclusters = [ [b] + unitNbrs[b] for b in bigUsers ]\n",
    "    bigOverUse = [np.sum([(unitUse[j] - 1.) for j in OUUclusters[i] ]) for i in range(nBigUsers) ]\n",
    "    bigI = bigOverUse.index(np.max(bigOverUse))\n",
    "    OUU = bigUsers[ bigI ]  #pick the unit that centers cluster with most overuse\n",
    "    attemptedBigUs.append(OUU)  #so we don't try this unit again in a future loop\n",
    "    OUUc = OUUclusters[bigI]  #the list of this unit and ALL its neighbors (to be curated below ...)\n",
    "    print(\"starting to reduce usage for unit\",OUU,\"with usage\",r5(unitUse[OUU]),\". Total units tried =\",len(attemptedBigUs) )\n",
    "    for u in OUUc.copy():\n",
    "        if unitUse[u] < 1.:\n",
    "            OUUc.remove(u)  #...drop any underused neighbors of the primary OUU from the target sheddable cluster\n",
    "    OUU2nbrSet = set( unitNbrs[OUU])\n",
    "    for u in OUUc:\n",
    "        OUU2nbrSet = OUU2nbrSet.union(set(unitNbrs[u])) \n",
    "    for u in OUUc:\n",
    "        OUU2nbrSet = OUU2nbrSet.difference({u})\n",
    "    ouuHDs, ouuDists = list(), list()\n",
    "    for t in popHDlist:  #finding all HDs with at least one cluster member on the boundary\n",
    "        if OUU in HDunitList[t]:\n",
    "            HDadjoinSet = set( getAdjoiners(HDunitList[t],unitNbrs) )\n",
    "            if len(HDadjoinSet.intersection(OUU2nbrSet) ) > 0: #the OUU or one of its overused 1-neighbors adjoins the complement\n",
    "                ouuHDs.append(t)  #so we can shed the OOUc to the complement\n",
    "                ouuDists.append( unitCP[OUU].distance(hdCP[t]) / avgDist[t] )\n",
    "    nPatchSuccess, nPatchFail, nCouldntStart, idxNo, idx0 = 0, 0, 0, 0, np.argsort(ouuDists)\n",
    "    while unitUse[OUU] > stopMaxUse and idxNo > -0.5*len(ouuHDs): #arbitrarily only examine 50% of HDs, biasing farthest ones\n",
    "        idxNo -=1\n",
    "        if idxNo % max(2,int(0.1*len(ouuHDs))) == 0:\n",
    "            print(\"try to drop unit\",OUU,\"from\",abs(idxNo),\"th HD.  usage down to\",unitUse[OUU] )\n",
    "        t = ouuHDs[idx0[idxNo]]\n",
    "        trySet = set(HDunitList[t]).difference(set(OUUc))\n",
    "        contig,complementContig, __, ___ = enclaveCheck(list(trySet), unitNbrs)\n",
    "        if not (contig and complementContig):  #dropping the cluster creates a problem (likely an HD discontig).  Try something simpler ...\n",
    "            if len(set(unitNbrs[OUU]).intersection(HDadjoinSet) )  > 0:  #Yay! The OUU itself on border.  Try dropping just it, not the full cluster\n",
    "                HDouuSet = {OUU}\n",
    "                trySet = set(HDunitList[t]).difference( {OUU} )\n",
    "                contig,complementContig, __, ___ = enclaveCheck(list(trySet), unitNbrs)\n",
    "        else:\n",
    "            HDouuSet = set(HDunitList[t]).intersection(set(OUUc))\n",
    "        if contig and complementContig:  #we can at least drop the cluster, let's go for more\n",
    "            #HDouuSet = set(HDunitList[t]).intersection(set(OUUc))  #the subset of the OUU cluster that's in this HD.  Defined above\n",
    "            HDouuCpop = np.sum([unitPop[u] for u in HDouuSet])\n",
    "            giveUpOnShedding = False            \n",
    "            shedCandidates, shedScores = list(), list()\n",
    "            bdryCandidates = getBdryNonEdgers(trySet, unitNbrs)  #new - any boundary unit can be shed, even if far from OUUc\n",
    "            for u in bdryCandidates:\n",
    "                if HDouuCpop + unitPop[u] <= maxExchangePop:\n",
    "                    shedCandidates.append(u)\n",
    "                    shedScores.append((unitUse[u] - 1.) * unitCP[u].distance(hdCP[t])/avgDist[t])  #bias toward far, overused\n",
    "            if len(shedCandidates) == 0:\n",
    "                giveUpOnShedding = True\n",
    "            while HDouuCpop < maxExchangePop and not giveUpOnShedding:\n",
    "                idx, ij, notYetPicked = np.argsort(shedScores), 0, True\n",
    "                while ij < len(shedScores) and notYetPicked:\n",
    "                    listNo = idx[-1-ij]   #work from high to low score\n",
    "                    shedU = shedCandidates[listNo]\n",
    "                    if shedScores[listNo] <= 0:  #we're delving into the underused; stop adding to shed list\n",
    "                        break\n",
    "                    contig,cContig, __, ___ = enclaveCheck(list(trySet.difference({shedU}) ), unitNbrs)\n",
    "                    if contig and cContig:\n",
    "                        notYetPicked = False\n",
    "                        HDouuCpop += unitPop[shedU]\n",
    "                        #print(\"shedding unit\",shedU,\"from HD\",t,\"total shed Pop now\", HDouuCpop)\n",
    "                        HDouuSet.add(shedU)\n",
    "                        trySet.remove(shedU)\n",
    "                        del shedScores[shedCandidates.index(shedU)]\n",
    "                        del shedCandidates[shedCandidates.index(shedU)]\n",
    "                        newSheddables = set(unitNbrs[shedU]).intersection(trySet)\n",
    "                        for u in newSheddables:\n",
    "                            if HDouuCpop + unitPop[u] <= maxExchangePop and u not in shedCandidates:\n",
    "                                shedCandidates.append(u)\n",
    "                                shedScores.append((unitUse[u] - 1.) * unitCP[u].distance(hdCP[t])/avgDist[t])\n",
    "                    else:\n",
    "                        ij +=1\n",
    "                if notYetPicked:\n",
    "                    giveUpOnShedding = True  #all candidates would create a discontig, so can't shed any more units\n",
    "            shedSet = HDouuSet.copy()  #set(OUUc).intersection(set(HDunitList[t]))\n",
    "            trySet = set(HDunitList[t]).difference(shedSet) \n",
    "            gap = aDP - np.sum([unitPop[u] for u in trySet])\n",
    "            nearHDlist, nearHDscore = list(), list()  #these will be dynamic lists of the nearby underused units\n",
    "            for u in trySet:\n",
    "                for uu in unitNbrs[u]:\n",
    "                    if uu not in HDunitList[t] and uu not in nearHDlist and unitPop[uu] < gap + maxGap and unitUse[uu] < 1.01:\n",
    "                        nearHDlist.append(uu)\n",
    "                        nearHDscore.append(5.*(unitUse[uu]-1.) + unitCP[uu].distance(hdCP[t]) / avgDist[t] )\n",
    "                        #bias toward UNDERUSED, close\n",
    "            addedSet = set( )    \n",
    "            stillGoing = True \n",
    "            while gap > maxGap and len(nearHDlist) > 0 and stillGoing:   #add the lowest-scoring neighboring underused unit until we've roughly squared the HDpop\n",
    "                nearHDscore2 = nearHDscore.copy()\n",
    "                for ij, uu in enumerate(nearHDlist):\n",
    "                    nHDnbrs = len( set(unitNbrs[uu]).intersection(trySet) )\n",
    "                    if nHDnbrs == 1 :  #BIAS AGAINST CREATING A SLIM CHAIN\n",
    "                        nearHDscore2[ij] *= 0.5   #make this score closer to zero (less negative)  #NEW FOR GA 3/11/24\n",
    "                idx, ij, notYetPicked = np.argsort(nearHDscore2), 0, True   #originally, used nearHDscore itself here\n",
    "                while ij < len(nearHDscore) and notYetPicked:        \n",
    "                    listNo = idx[ij]   #nearHDscore.index(np.min(nearHDscore))\n",
    "                    unitNoToAdd = nearHDlist[listNo]  #add this unit ...                            \n",
    "                    canAdd  = wontEnclave(unitNoToAdd, list(trySet), unitNbrs, borderUnits)\n",
    "                    if canAdd:\n",
    "                        notYetPicked = False\n",
    "                    else:\n",
    "                        ij +=1\n",
    "                if notYetPicked:\n",
    "                    stillGoing = False  #can't add any more units; we can't without creating an enclave\n",
    "                else:\n",
    "                    gap -= unitPop[unitNoToAdd]\n",
    "                    addedSet.add(unitNoToAdd)\n",
    "                    trySet.add( unitNoToAdd)\n",
    "                    for uu in unitNbrs[unitNoToAdd]:             # ... and add its nonHD neighbors to future candidates\n",
    "                        if uu not in trySet and uu not in nearHDlist and unitPop[uu] < gap + maxGap and unitUse[uu] < 1.01:  \n",
    "                            nearHDlist.append(uu)\n",
    "                            nearHDscore.append(5.* (unitUse[uu]-1.) + unitCP[uu].distance(hdCP[t]) / avgDist[t] ) \n",
    "                            #bias toward UNDERUSED, ~close\n",
    "                    del nearHDscore[nearHDlist.index(unitNoToAdd)]        \n",
    "                    del nearHDlist[ nearHDlist.index(unitNoToAdd) ]\n",
    "                    for ijj, uu in enumerate(nearHDlist.copy()):\n",
    "                        if unitPop[uu] > gap + maxGap:   #with the added pop from another unit, this unit is now too big to add\n",
    "                            del nearHDscore[nearHDlist.index(uu)]\n",
    "                            del nearHDlist[ nearHDlist.index(uu)]\n",
    "            currPop = np.sum([unitPop[u] for u in trySet])\n",
    "            if abs(currPop - aDP) <= 2.* maxGap:\n",
    "                for u in shedSet:\n",
    "                    unitUse[u] -= HDweight[t] * nDistricts\n",
    "                for u in addedSet:\n",
    "                    unitUse[u] += HDweight[t] * nDistricts\n",
    "                HDunitList[t] = list(trySet)\n",
    "                HDvPop[t]    = currPop\n",
    "                nPatchSuccess +=1\n",
    "            else:\n",
    "                nPatchFail +=1\n",
    "            # end of shed + add patching on this HD\n",
    "            #print(\"shed and patched for HD, OUU\",t,OUU)\n",
    "        else:\n",
    "            nCouldntStart +=1\n",
    "            #print(\"Due to discontiguity, can't drop OUU cluster for HD, OUU\", t, OUU)\n",
    "    print(\"all done trying to reduce usage of unit\",OUU,\"final usage =\",r5(unitUse[OUU]),int(time.time()-startTime),\"sec elapsed\",\n",
    "         nPatchSuccess,nPatchFail,\"successful, failed patches, couldn't start=\",nCouldntStart)\n",
    "    currAvg, currSD = getWeightedAvgAndSD(unitUse,unitPop)\n",
    "    print(\"current avg and SD of usage are\",r5(currAvg), r5(currSD) )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 169,
   "id": "4bf299e8-0054-4151-8c70-d29cb67681df",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.009068992040983612 0.9174600167163308\n"
     ]
    }
   ],
   "source": [
    "print(maxGap/aDP, maxGap/np.average(unitPop))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 149,
   "id": "cb60da52-ca13-45dd-8bf0-475213183a0d",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "overused units\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiwAAAGdCAYAAAAxCSikAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA7kklEQVR4nO3dfXwU5b3///fs5j6b3dwTYgKEm0IQg9x4k6KnKgjlq4i033p+/vDAsfb0SPEu1FZSj/aUWqDHB960VW60oj2WeqQ9WG2LaI2IKCCgaRFqKAEFITeEhN1kk2ySnfn+EdkaISGBJDtJXs/HYx+4szPXfMZh3bfXXHONYVmWJQAAABtzhLsAAACAsyGwAAAA2yOwAAAA2yOwAAAA2yOwAAAA2yOwAAAA2yOwAAAA2yOwAAAA24sIdwHdxTRNHTt2TAkJCTIMI9zlAACATrAsS7W1tcrMzJTD0X4/Sr8JLMeOHVN2dna4ywAAAOfgyJEjysrKavfzfhNYEhISJLUesNvtDnM1AACgM3w+n7Kzs0O/4+3pN4Hl1GUgt9tNYAEAoI8523AOBt0CAADbI7AAAADbI7AAAADbI7AAAADbI7AAAADbI7AAAADbI7AAAADbI7AAAADbI7AAAADbI7AAAADbI7AAAADbI7AAAADbI7AAAADb6zdPawYADEz+996TFQh8bokhIzpKTo9HzoQEORIS5IiPl+Hg/9H7MgILAKBPswJNcl15ZZtlZkODgr5amXW1aq6okOmvlyxLkvXZGsaprT/3/oufSY7YGDni4uSIj2/9My5ORlycDOMf66B3EFgAAP2OIzZWjthYaVD6ObdhWZasxkaZfr/M+nq1VFXJrK+X2dAoWeZna7UXXM4UhCQjKlrOBFdrr4/LJafLJSMy8pxrHEgILAAAnIFhGDJOBZ9uYgYCMmtrFaytVfOnnypQWysrGDy1x060YMmIiJDDlfCP4JOQIEdUVLfVaFcEFgAAeokjOlqO6GhFpKaecxtWU5OCdXUya2vVXF4u8+8HZDU36Yu9OW0DUNseH0dsrBwJCXK6/tHbY/cxPgQWAAD6ECMqShHJyVJy8jltb1mWrPr6UOhpOX5cQb9fMq32t2luUuz48YpISTnXss8bgQUAgAHEMAwZ8fFyxMdLgwZ1apumw4dl1tZKYQws9u7/AQCgB23ZskWzZs1SZmamDMPQSy+9dNZtNm/erIkTJyo6OlojR47Us88+e9o6R48e1S233KKUlBTFxsbqoosu0q5du7r/AHqJWVcnR0JCWGsgsAAABiy/36/x48friSee6NT6hw4d0nXXXaerr75axcXFuueee/Stb31LmzZtCq1TU1OjKVOmKDIyUhs3btS+ffu0YsUKJSUl9dRh9LhgXZ0cLldYa+CSEABgwJo5c6ZmzpzZ6fVXrVqlnJwcrVixQpKUm5urrVu36tFHH9WMGTMkST/96U+VnZ2ttWvXhrbLycnp3sJ7mRVokhHmO5HoYQEA2JrV1CTT75fV0hLuUrRt2zZNmzatzbIZM2Zo27Ztofcvv/yyJk+erG984xtKT0/XhAkT9NRTT/V2qd0u3JPl0cMCALC1ui1b5ExOlhUIyGoJnvZ5b068Vl5erkGDBsnf7JfDcCg2IlaDBg2Sz+dTQ0ODYmNjdfDgQa1cuVKLFi3SD37wA+3cuVN33XWXoqKiNH/+/F6rtb8hsAAAbM2IjlHcxInhLqON6zdcr8ToRG2YveG0z0zT1OTJk7V06VJJ0oQJE/Thhx9q1apVfTiwtH/Lc2/hkhAAAJ2UkZGhfZ/sU1VDlQ6cPCBJqqiokNvtVuxnM+IOHjxYY8eObbNdbm6uDh8+3Ov19icEFgCAzYX//+4laf3+9fpbwt+0/o/r2yx//fXXlZ+fH3o/ZcoUlZSUtFln//79Gjp0aK/U2V8RWAAAA1ZdXZ2Ki4tVXFwsqfW25eLi4lBvSGFhoebNm6f65not2bZEyVcnq6mySeX/U65RzaP05JNP6sUXX1RBQUGozYKCAm3fvl1Lly7VgQMHtG7dOq1Zs0YLFy4MxyH2G4xhAQDYXM/dnbJr1y5dffXVofeLFi2SJM2fP1/PPvusysrKdPjwYa356xpJUlRalIYWDFX5b8r10usvaXfWbj399NOhW5ol6ZJLLtGGDRtUWFioJUuWKCcnR4899pjmzp3bY8fR88J7h5AkGZZl2aOv7Tz5fD55PB55vV653e5wlwMA6CZ1b2+V68orwlpDVUOVrn7xH8EmKTpJNYEajfCM0Es3vhS+wnpJT56Dzv5+c0kIAGBbVkuLDGf4f6pSYto+Q6cmUCNJGuIeEo5yBiQuCQEAbCtYWyuH2xPuMmQYhn5z3W8UFxGnQ95D2le9T7NHzCaw9CICCwDAtoInT8qZGP7AIknjUsdJkoYnDtfUoVPDXM3AE/5+NgAA2mF6vXJ67BFYEF4EFgCAbQXr/GF/SvBAZzU3y4hwhrsMAgsAwMYsK+wP3RvognV1tgiNBBYAANAu0++XI57AAgAAbMysq5PDFR/uMggsAACgfWZtrZw2mJCVwAIAANplNjbKiI4OdxnMwwIA6H3BOr/q39shIzJSrc+psVr/NAw53QlyuFyyWlpk+v1hrhSSbDHwmcACAOh1gf0lirv0Ujm/cPeJFQzKrK1tvZ05Pl6ur/xTmCrEP4Q/rEhcEgIAhEFkZqYC+/9+2nLD6ZQzMVFRWRcoctAgOWJjw1Ad7IjAAgDodZEZGQr6vOEuA51ihbsASQQWAEAYmIGAHFFR4S4DfQiBBQDQ6xo++ECxkyaFuwx0CmNYAAADlBEVpcDfD4S7DHQKl4QAAANU3MSJCtZUh7sM9CEEFgBAWFjNzeEuAZ3CJSEAwABmRDAVGDqPwAIACA8bzJ6KjlmWpX4xhmX58uUyDEP33HNPaFljY6MWLlyolJQUuVwuff3rX1dFRUWH7ViWpQcffFCDBw9WbGyspk2bpr///fQJhQAA/Yhljx9CtM9qaLDN5H3nHFh27typ1atXKy8vr83ygoICvfLKK1q/fr3eeustHTt2TF/72tc6bOu//uu/9LOf/UyrVq3Sjh07FB8frxkzZqixsfFcywMA2B2BxfaCtXVyJIT/Sc3SOQaWuro6zZ07V0899ZSSkpJCy71er375y1/qkUce0TXXXKNJkyZp7dq1evfdd7V9+/YztmVZlh577DH9x3/8h2bPnq28vDz96le/0rFjx/TSSy+d00EBAOzLCgbVWLJfZiAQ7lJwFmatT053QrjLkHSOgWXhwoW67rrrNG3atDbLd+/erebm5jbLx4wZoyFDhmjbtm1nbOvQoUMqLy9vs43H49Fll13W7jaSFAgE5PP52rwAAPbn375dhtOhhKlTw10KziLoq5UjoY8GlhdeeEHvv/++li1bdtpn5eXlioqKUmJiYpvlgwYNUnl5+RnbO7V80KBBnd5GkpYtWyaPxxN6ZWdnd/FIAADhEH/55Wr8qESG0xnuUs5qy5YtmjVrljIzM2UYRqd6/jdv3qyJEycqOjpaI0eO1LPPPnvaOkePHtUtt9yilJQUxcbG6qKLLtKuXbu6/wDOk+n3yxEXF+4yJHUxsBw5ckR33323fv3rXysmJqanauqUwsJCeb3e0OvIkSNhrQcA0DmG06mY3DFq3L8/3KWcld/v1/jx4/XEE090av1Dhw7puuuu09VXX63i4mLdc889+ta3vqVNmzaF1qmpqdGUKVMUGRmpjRs3at++fVqxYkWbIRZ2YjjscUNxl26C3717tyorKzVx4sTQsmAwqC1btugXv/iFNm3apKamJp08ebJNL0tFRYUyMjLO2Oap5RUVFRo8eHCbbS6++OJ2a4mOjlZ0dHRXygcA2ET0iBGqffNNRV1wgRzx8eEup10zZ87UzJkzO73+qlWrlJOToxUrVkiScnNztXXrVj366KOaMWOGJOmnP/2psrOztXbt2tB2OTk53Vt4P9Sl2DR16lTt2bNHxcXFodfkyZM1d+7c0D9HRkbqjTfeCG1TUlKiw4cPKz8//4xt5uTkKCMjo802Pp9PO3bsaHcbAEDf5/rKV1T75ubP5vroH7Zt23ba+M4ZM2a0GZP58ssva/LkyfrGN76h9PR0TZgwQU899VRvl9pJ9jk3XephSUhI0Lhx49osi4+PV0pKSmj5bbfdpkWLFik5OVlut1t33nmn8vPzdfnll4e2GTNmjJYtW6Y5c+aE5nF56KGHNGrUKOXk5OiBBx5QZmambrzxxvM/QgCALRkOh5wJLlkNDTJsMk7ifJWXl59xTKbP51NDQ4NiY2N18OBBrVy5UosWLdIPfvAD7dy5U3fddZeioqI0f/78MFVuf90+L/Kjjz4qh8Ohr3/96woEApoxY4aefPLJNuuUlJTI6/WG3n//+9+X3+/Xt7/9bZ08eVJXXHGFXn311bCPkwEA9JxgnV9W0LTNoM7eYpqmJk+erKVLl0qSJkyYoA8//FCrVq2yYWCxz2zE5x1YNm/e3OZ9TEyMnnjiiQ4HKH2x+88wDC1ZskRLliw533IAAH2EI77/BZWMjIzTZnevqKiQ2+1W7Gczxg4ePFhjx45ts05ubq5+97vf9VqdfZE9hv4CAAYcwzBkRPajByCePKL84A698ft10r6XQ4tff/31NmMyp0yZopKSkjab7t+/X0OHDu21UjvD+8orMqKiwl1GCIEFABAWLTU1Mhsawl1Gh+rq6kI3mUitty0XFxfr8OHDklqn2Jg3b17ryk1+3T45SgePHtf3/+0b+mjvh3ryySf14osvqqCgINRmQUGBtm/frqVLl+rAgQNat26d1qxZo4ULF/b24bXLam5WRGqq4i+7NNylhBBYAABh4YiPV0vlcTWf5QG54bRr1y5NmDBBEyZMkCQtWrRIEyZM0IMPPihJKisrC4UXpY9RTmaK/rjocr1+sEXjJ07SihUr9PTTT4duaZakSy65RBs2bNBvfvMbjRs3Tj/+8Y/12GOPae7cub1+fO0J1tXJ4bLHDLenGFY/uZ/M5/PJ4/HI6/XK7bbHg5oAAB1rPnZMZn29okeODHcp3eM/Pf/45395SRpxddhKOR9Nhw9LpqmoYcN6fF+d/f3uRxcPAQB9jTM5WfW731fU0KEyIiPDXc75u/TbUuXfpIyLpMHjw13NOQvW1iryc5O52gGBBQAQNo6YGCVcO01177yjhKuuCnc55+//PBzuCrqFWVsr56hR4S6jDcawAADCqqH4L4q/5JJwl4HPsZqbbXWHkERgAQCEWUR6mpqOHg13GbA5AgsAIKyihw9XsKpKzceOhbsU2BiBBQAQdnH5+Wr48EO11NSEuxTYFIEFABB2hmEo4dprVb9rV7hLGVCay8rUcvy4zKamcJdyVtwlBACwBcMwpKAZ7jIGlPqdOxU9cqRa9u9XsOaknJ7WeVAMpzPMlZ2OwAIAsI3Y8Xlq/NvfFJObG+5SBgRnUpJivvAgRrvikhAAwDYiBw9WM3cM9SIj3AV0Gj0sAABbMBsbVVdUpLjLLw93KQOC1dwsI8J+l37aQ2ABAIRd0+HDaiwpUcKMGbYcP9EftT7g0BXuMjqNwAIACCv/9h1yxMXKfe214S5lQDEJLAAAnF3Q55P/nXcUO2mSItPTw13OgGPW1SkiNTXcZXQagQUAEBb1u3cr4atfbb2dGb0uWFurqJyccJfRaQQWAEBYGBGRhJUwsgJNqt+5S474eDk9bjndbkWkpYW7rHZxWzMAIGwsywp3CQOW68orFH/FFEV/aZQcMTGqffNNWTae8ZYeFgBAWDhiY2Q1NMiIiwt3KQOWYRhyulxyulyKHDxYRlRUuEtqFz0sAICwcCQkKFhbF+4y0EcQWAAAYeF0uWTW1Ya7DITYezwRgQUAEBYOl0tmHT0s6BwCCwAgLBwul4IEFhux9wBoAgsAICwMp1My7f0jCfsgsAAAADGGBQAA9AH27u0isAAAANsjsAAAMMBZLS2tY4psjMACAMAAZzY0yGHzGYcJLAAADHBmfb2MWAILAACwMbO+Xo642HCX0SECCwAAA5xZVyeHyxXuMjpEYAEAYIAL+nxyut3hLqNDBBYAQBjZe+6PAcM0uUsIAADgfBFYAADh43DICgbDXQVsPi2/RGABAISRMz5ept8f7jLQBxBYAABh40hIkFlbG+4y0AcQWAAAYeNwuRSso4cFZ0dgAQCEjdPlkllHDwvOjsACAAgbIy5OZn1DuMtAH7i9nMACAAgbwzDUF34sEX4EFgAABhCrpUXNFZWyWlrCXUqXRIS7AADAQGf/OUD6k8aPSmTW1aqp9EBoDpzIrKwwV3V2BBYAAAYQ0+dV3KWXyojoWxGAS0IAgDBjDEtvsoJmnwsrUhcDy8qVK5WXlye32y232638/Hxt3Lgx9HlpaanmzJmjtLQ0ud1u3XTTTaqoqOiwzWAwqAceeEA5OTmKjY3ViBEj9OMf/1iWxV9gABgYDNW9/fbnXltb/3znHTX85S8KHDyoluPHZTY1hbtQhFGXIlZWVpaWL1+uUaNGybIsPffcc5o9e7Y++OADDRs2TNOnT9f48eNVVFQkSXrggQc0a9Ysbd++XQ7HmbPRT3/6U61cuVLPPfecLrzwQu3atUu33nqrPB6P7rrrrvM/QgCArbmuvOKMy62WFpl1dQrW1amlqkrB0oOympt1eo/M5+80amc8jGHIERsjR2ysHHFxMuLi5IiLkyM21vZPKUYrwzrProzk5GQ9/PDDys7O1syZM1VTUyO32y1J8nq9SkpK0muvvaZp06adcfvrr79egwYN0i9/+cvQsq9//euKjY3V888/3+k6fD6fPB6PvF5vaP8AAEiSZZqyGhtl1tfLbGho/dNfL7OhXjJNnTnofD4EWV9Y5/M/na3LHXGxciQkyOl2y5mQICMu7rPbtu2l7u2t7YbEcOjs7/c5X8QKBoNav369/H6/8vPzVVpaKsMwFB0dHVonJiZGDodDW7dubTewfPnLX9aaNWu0f/9+felLX9Jf/vIXbd26VY888kiH+w8EAgoEAqH3Pp/vXA8FANDPGQ5HqFelJ1iWJau+XsHaWpm1tWo+dkymv15tg84XA1CbAuV0J8jp8cjp8ciRkEDPzxd0ObDs2bNH+fn5amxslMvl0oYNGzR27FilpaUpPj5e9913n5YuXSrLsrR48WIFg0GVlZW1297ixYvl8/k0ZswYOZ1OBYNB/eQnP9HcuXM7rGPZsmX60Y9+1NXyAQDodoZhyIiPlyM+XsrI6PL2lmnKrK1V0OtV05EjCnp9kmV+cS+n1m6z1OFyyelJlDMpsbVnpw8OqO2MLh/V6NGjVVxcLK/Xq9/+9reaP3++3nrrLY0dO1br16/XggUL9LOf/UwOh0M333yzJk6c2O74FUl68cUX9etf/1rr1q3ThRdeqOLiYt1zzz3KzMzU/Pnz292usLBQixYtCr33+XzKzs7u6uEAABB2hsMR6l3pCss0Zfr9Cnq9aj56TAGfNzS3Srvb9LEJ40457zEs06ZN04gRI7R69erQsqqqKkVERCgxMVEZGRn67ne/q+9973tn3D47O1uLFy/WwoULQ8seeughPf/88/roo486XQdjWAAA6Ht6fAzLKaZpthlLIkmpqamSpKKiIlVWVuqGG25od/v6+vrTemCcTqdM84tdYQAAYKDqUmApLCzUzJkzNWTIENXW1mrdunXavHmzNm3aJElau3atcnNzlZaWpm3btunuu+9WQUGBRo8eHWpj6tSpmjNnju644w5J0qxZs/STn/xEQ4YM0YUXXqgPPvhAjzzyiL75zW9242ECAIC+rEuBpbKyUvPmzVNZWZk8Ho/y8vK0adMmXXvttZKkkpISFRYWqrq6WsOGDdP999+vgoKCNm2Ulpaqqqoq9P7nP/+5HnjgAX3nO99RZWWlMjMz9e///u968MEHu+HwAABAf3DeY1jsgjEsAAD0PZ39/eZZQgAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPYILAAAwPa6FFhWrlypvLw8ud1uud1u5efna+PGjaHPS0tLNWfO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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "underused units\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiwAAAGdCAYAAAAxCSikAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAC1+0lEQVR4nOzdd3QU1dsH8O+UrcmW9F5ISAIBEkoIBJReBASMBVQ6itKUpgg2BEXgpyBVRBGwBwXBgjQpQUroSG8RCQRICCG9bHb3ef9YMmQlICgl+D6fc+aQzN6ZuXeWc+bJ3HufKxARgTHGGGOsChPvdQUYY4wxxv4OByyMMcYYq/I4YGGMMcZYlccBC2OMMcaqPA5YGGOMMVblccDCGGOMsSqPAxbGGGOMVXkcsDDGGGOsypPvdQVuF7vdjnPnzsFgMEAQhHtdHcYYY4zdBCJCfn4+/P39IYrXf4/ynwlYzp07h6CgoHtdDcYYY4z9A2fOnEFgYOB1P//PBCwGgwGAo8FGo/Ee14YxxhhjNyMvLw9BQUHKc/x6/jMBS3k3kNFo5ICFMcYYu8/83XAOHnTLGGOMsSqPAxbGGGOMVXkcsDDGGGOsyuOAhTHGGGNVHgcsjDHGGKvyOGBhjDHGWJXHAQtjjLH7zpw5cxAaGgqtVotGjRphx44dTvtCQ0Ph5+cHlUoFjUYDWZah0+mg1WoRFBSEYcOG4Y033kB4eDi0Wi18fX3h5eUFURQhCAIEQYBarUatWrXg7+8PQRDQsGFDGI1GCIIAnU4Hb29vPPLIIzh27Ni9vh3/LwhERPe6ErdDXl4eTCYTcnNzOQ8LY4z9hy1evBi9e/fGRx99hNTUVMyYMQMFBQUAgNdffx1msxmjR4+GLMuw2+2oXr06jh49iqZNm2LXrl1wc3PDhQsXAABdu3aFh4cHlixZgry8PKjVagQHB+PkyZMQBAFEBIPBgPz8fIiiCLvdDgAYOXIk1Go1ZsyYgeLiYsTFxeHBBx/EggULkJubq9RVEASEh4fjgw8+wJ49ezBr1ixcunQJgiBAkiQIgoCysjIQEQRBgEajgSAIkGUZnp6eICKcO3cOVqsVgCNJaosWLTBlyhRERUXd5Tt/Z9z085v+I3JzcwkA5ebm3uuqMMYYu4Pi4+NpyJAhlJSURGq1mubPn0+yLJO3tzeZzWaqV68eDR48mFQqFTVu3JgGDx5MarWaunXrRgBIr9cTAFKpVOTh4UEuLi7Utm1bEgSB3NzcKDo6mpo1a0b169cnAMomSRIJguC0z2w2EwASRVH5VxAEkmX5mrIAyMfHh4YPH05NmjQhACTL8jVlAFDTpk3piSeeIFmWqX79+jRp0iQaMGAAybJMDzzwAJlMJgoNDSWNRkMxMTG0cuXK696vSZMmEQAaNmzY3fuSbsHNPr85YGGMMXbfKC0tJUmSaMCAAaRWq0kURYqLiyNBEKhhw4ZkMpmUYAQA1axZkz777DMlkABAarWaBEGg4OBgkiSp0oChPDipLOgo30RRJC8vLwJAISEhSgAiCAK1aNGCRFEkg8FAAJTzjB07lrRaLXl6ejodA4A0Go3yuyiKlJGRQW5ubjR//nyl/W5ubtSqVSsCQFOmTKHU1FT68MMPSavV0p49e665Xzt27KDQ0FCKiYm57wMWHsPCGGPsvpGVlQWbzYYFCxbAarVi+vTpiIyMBBHh7NmzyM/PBwBMmzYNAHDs2DHs2LEDsiyDroyAsFgsICKcOXMGNpsNkiQ5XaN58+aw2+0gxx/1yn6tVutUTpIkuLm5Qa1WIy0tDZIkwWq1goiwc+dOxMXFobCwEGq1GgCUch07dkReXp7SjWW1WuHp6Qm73a6MjyEiDBs2DIWFhUhISIDNZkNSUhIKCwuxb98+AEDHjh0RFhaGQYMGoWPHjpg6dapT/QoKCtCjRw988skncHNzu03fwL3DAQtjjLH7jkqlgt1ux9y5c/Hkk08CAC5evIjo6GgAQHBwMABAFEXMmzcPFotFOa5ceTBis9mczp2cnKx8VjGY6dixo1O58qCnbdu2ICL4+voqnxUVFaGoqAh2u10Zo2KxWLBhwwaUlJTAYrHg0qVLSvmCggKlXH5+PogIS5YswQcffID4+HhoNBoMHDgQS5cuRX5+PqpXr47atWsrx+t0OmzevNmpfkOGDEGnTp3Qpk2bW7m1VRYHLIwxxu4ba9euBQAkJCQAACIiItCrVy8AjjcVYWFhAIDS0lJl8KrVaoXJZAIAZdBs+e9qtRo+Pj6QJAnu7u7KDKFyFYOZ8jcl5axWKyIjI5XgKCYmRvmMiHDw4EHlZ1dXVwDAuXPn8MsvvwAAPD09lfIlJSXKz7IsK3UdMmQIAgIC8Omnn2LQoEF44oknIEkSsrOzERwcDI1Gg2rVqiEpKQmnT5+GVqtFbGwsxowZgz179mDSpEmYPHkykpOTkZycDACYPHkyBEHA8OHDb+XW33McsDDGGLtvTJ8+HQBgNpshSRL69OkDWXO1q+bC5QK4Gk1Y/ONqSLKsBC55V2buiKIjYCmfySPLEjIyMuDv74vs7OxruoEqBi+rVq1yqosoitBoNNDpdACgdNV8+OGH+P333xEQEKCULe/+EQQBLVu2BACnNyx/PS8ABAYGonHjxhBFEcOHD0dmZiaICEFBQSgqKkJ6ejpsNhsyMzNhs9mgUqlw+PBhdOvWDVOmTMHrr7+OAwcOYN68eXBxcQEA7Ny5E/PmzXMKru4XHLAwxhi7L1gsFuzfvx8AsGLFCgQHB2Pp0qXQ6V2UwOLw3h0wGVyx9MtPIZDj7YYAAeUhSFkZ/eWcjjcbZ86kAwB0V4IfQXA8HkVJVspqNBqnY+12O7RaLc6cOQOVLOP8+fPw9vTE8rXfodi9CDa7DWazGS4uLjCbzahfvz5q1KiB2NhYhIWFITAwEK1ataq0nQCQlpYGrVaLhg0bwmKxYMmSJahbty7Onj2L999/H4WFhTh9+jSMRiO8vLyg1+sRFhaGWrVqAQCeeuopxMfHIy0tTRn7Eh8fj48++ghFRUVYsGCBUx6b6ykrK8OECROUnDWxsbHXBG93A+dhYYwxdl84d+4cAgICIEkS+vfvj2XLliErKwsuBiPIZkVRUREAx1sMvV4Pa5kVpZbSf3y98jwstyLAxx/nMs9DkEXYy2yQJTVsdisEQYIoipAlFaxWCyQXCXa7DdpQLfIP5gECIIkS1Go1iouLATi6oMrKytCyZUts2rQJPj4+SE9Ph4uLCyZMmIBBgwZBp9NBr9crx8THx6Nx48b45JNPUFxcDA8PD8yaNQvPP/88BEHAww8/jLKyMnz33XcQRRHVq1eH3W7HH3/8AZVKhaioKDz44IPYtGkT/vzzTwCO3C8lJSX44osvsHHjRrz33nuQJAk7d+5EvXr1/vH9LXezz29+w8IYY+y+EhUVBY1Gg4sXL2LWrFkgux1FRUVQqVR4/PHHYbfbUVBQgEaNG0EraxDhEeLIYAvB6TwyAJUAGEUBzd1d4OUqQS1JEAAl461arb5mdhAA+Pj4ALjaZSSJItxddEjPOAcigr3MMfbFZiuDp8EPEgRYraUoKS2A1WZBaX4xygosjmAFAMgxXqY88AAAq80Ok7sn1q9fD6vVivR0x1ugwsJCjBo1CtF9ByImsZtyjCgIgKUUM2fORGmpI1Dr2rUrBg8eDKvVCovFAl9fXyxfvhzu7u7o3bs3QkJCcPLkSbi6uuLFF1/EwIED8fHHH2PAgAHYvXs3du3ahdzcXOTm5iIvLw/fffcdYmJiEBoaes2spDuNAxbGGGP3BU9PT0iShA4dOuCTTz7BZ599htatW8PdyxsqlQqzZs3CTz/9hKZNm2LAgAEIjwyHJIt4veUQzHz4dTSv1hA13byU8wV7mdGxXnXk2QnJ2YW4WGCDxWYDwdHdUz61uaSkBK6urqhbty58fX0hCAIyMjIgiuLVmUZ2O7ILrwYb/Tw8EKx3gyiKyMo/DytZodcYEFejJcb2m4faC2vD/KAZspujy0nWyNBqtcqA2+DgYMQ1qI/LWZlo3rw5atWqhfj4ePis3wvT+GmQ9Xr8+e3nOLDc8abE4GqAnQg79v2u1EGlVqPny+9CkFUoLi6Gl18AFn3xFaxWK8we3rDJOvx+4ABq14mBh4cHjh07hkGDBqFz587Yvn07IiIiEBkZCY1GA41Gg2HDhilTpGVZvmZW0p0m/30Rxhhj7M6aM2cO3nvvPVy4cAGxsbGYNWsW4uPjncqo1Wo0aNAApaWl6NSpE5599lklZX1MTAz69OmDsrIyvPTSS0hJSYHR0wiLpgx9l70CAQLsNjtUANQArAASOz2CpRs3Kin31QCssgy7zQZoNKjVvRcOffYJAMeg2fJBtQDg5eWF48ePw2w2AwCObduMn6dPBgBkDopG1IwVaKkbhTxj6DVtzdKfBQAEPhOINxu+iadinsJ3Sd/hkUcegcVigV6vh0ajwYEDB5R1jjIzM1FaWgrTi30gDXoZYSs243JBIbK6NkdSUhJmzJiBlJQU2Gw2iILgCLgsFrSqeXWq9ZlTqcrPf5w4ilMnj4GIkHnhAmSVClqDG5KPX0RemYAt2zch+fhF2Gw2+IWE49DenWjeqjVatWqFUaNG4eTJk9fkr7njbme2unuJM90yxtj9qTzF/oIFC+jQoUM0YMAAMpvNlJGR4VRu9uzZ5OnpqWSaHTp0KD311FOk1evJx8eHRowYQb169aIxY8bQhAkTSKfTkdagIVEUSDbLJEggL1cVBRoNNMrLm/x1OlLLMsVFR1Ov6GhH2v5HnybBxZVUIWG09+gx2rBhAw0cOJDCw8NJo9GQh4cH9erVi9LT053qZrNaKetMGlmKi5V9dpuNivNLKD+7mC78kUspP6TSosU/UJvZnWnG7hm0J2MPWW1Wio+Pp6FDhyrHhYeHEwB67LHH6P3331fS/j/33HPUo39/El0NVGPpKnpi+HACQE899RRJkkQPP/ywI0uv6Miq27ZtW3r99ddJkiSSZZmqV69OERERyhIBDz30EKnVauV+NmzYkFYuWUI6nY5kWSYXFxeSJMlxH7U6EgRB+T0mJoa0Wu1t+f45NT9jjLH7QvnaQOVsNhuZTCYym82k0WgoPj6e3nnnHSWoqV+/vvIQr1evHs36+idKSEggrVarrAfk6+tLer2exg99jULN/iRAUFLke3h40EPR0bSqQRwdjq5Fi4NDKECloiizmfSPPk2q2Abk373XXWt/UlISaTQaWrRoER0+fFhJ0V8eHLi4uBAAevXVV8lms5Gslkntr6a+neIqX1bgypICTzzxBBEReXh4KMsVuLm5OZWVZVlZxkAQBApVqylGqyUBIL1WSyaTiSRJIhdXA63bnEJnz56l5s2bU4MGDSg6Ovq2tJ8DFsYYY1Ve+dpAy5YtU/YlJSWRKIpUt25d5Y2LJEnUr18/IiL66quvyGg0kpeXF02aNIk6d+9FsixT7969lbV1AJDRaKRjx45RXvIZalw/nmRZprp169K+ffuoY8eOFBwcTOmpqVQ9NJS+7d+fmkZH0xPPD6LWO47SpNRzd6X9s2fPppCQEJJlWVkbCQDVrVuXfH19lcDCz8+PHn74YXr1zVfpyixtp02n012z7pEgCNS1a1fSaDQkCAL17NmTnu7ZW/nczexGHu4eyu+Pd+hAhyKjKNjdnbwkiT588UWKvvLmSQmGKqy9JAgCWa3Wf30POGBhjDFW5aWnpxMAGjVqFIWEhJBGoyEXFxeKjIyk+Ph4IiIqLi4mANSzZ08iIrJYLNShQwenB+lf/9qXZVl5U1G+1a1bl0JCQoiIKDMzkwBQ+/btafjw4URE1Lx587u6QGBlXWHlAcHWrVuVe+Pp6UnNmjUjPz8/MngayNjASLJZJr366psRLy8vkq4EO39tc3mZsLAwp8/0spbebjP86mKOEMhNdpwzVKWibwYOopdeeomee+45AkBhYWG0aNEiMhgM5OLiQlu2bLkt94EXP2SMMXbfmDlzJsaNG4eUlBQUFRXhjz/+QFlZGQDgQmYWAODUlbwgvXv3xurVq1G/fn1ERkZCpVbj8OHDGDx4sHI+vV6P0tJS9O3bFwCQmJiIffv2KVODyzPdpqamYtKkSXeplc6mTZuGAQMGoF+/foiOjsbMmTOvWdcIABo2bIj09HRkZWXh5TEvQy/qYc2xokOdKACO5HgXL16E7cqyAxWVJ9ojIsyaNQuCeHWgrJXsePPX6QAAlSjD1+gF65Wp3ypBgOea1ehYXILz588DAE6dOoVRo0ZBr9fjySefRJMmTW7r/fg7HLAwxhi7Z8rX02nTpg369esHb29vEBFEUVTW19ma6ghYUlJSoNZokbR4MSKiYxBZLwGS1hUt2j8MrVaLefPmwWq1YuXKlcjLc+Q3WbRoEQDHgobx8fGw2Wyw2+3o3r07BEFATk4OdDodli9fflfbbbFYsHv3bqeFCbOzs5WfMzIylGncGo0GOTk5AICje44ic3cmAGBbaprTOUVBQGhIsNM+qpD4buzYsRDEq499i81yNQOw3YpzeZkosDqCxEs2GzqeOoUnPluErVu3AgC+//57ZGVloUaNGsraSHcTByyMMcbuuYpr9vzV4d3bAAB6nQ6eHu4AEY4d3IeLx3YiwqUAX33yIfR6vZIqv0ePHgAcyd/KFybMzs7GqVOnoFKpEBERgT179oCIkJXlCIYSExORnJyMmTNnQpZl5U1HUVERWrVqBZVKBUEQoNPp8M477zjVr3379nBxcSwPIIoi/Pz8sHLlyhu2NysrCzabTUlAV5FWq8W6deuUadynT59GXl4e/Pz88M0338But+Phhx+GQa9zOs5OhJyLmfAzGQAAXh4eymctWrTAgAEDYL8yDbycwWCA0WiEIAhQSTJwJYTJt9mgkWVIev0105c3btyorOl0V92WDqgqgMewMMbY/ad8nIZKpaJFixbRvn37SBAEkmWZAgMDKSQkxGncxYIeoVTd7erg0geDRTKbjMrv5TNqyreEhAQCQP7+/pXOqCkf5Pr888+Tv78/iaJI1apVI4PBoIzVEASB3nrrLdqwYQM9+eSTBIC+/vprpQ0eHh70zDPP0PLly2nx4sWO8SSSdM207MravXXrVmVfaWkpCYJAvr6+yqyhqVOnKtOJIyIinKYh/3XMilqSSJZEZVqzUGFwLACnYwGh8vshOM7ZyWCkLr5+ZDAYSJZlAuA0MPp24kG3jDHGqrzyB/fIkSMpODiYZFl2mu0yduxYpwfqzIc0NCxervRhC4BEWXSabVM+ZbfiptVqadmyZU77fHx8lEG6Li4uNGzYMDp69CgJV6YIHzx4UKmzv78/hYaGXrdNhw8fdtR15szrlqlsdhSRI/ipVq0azZo1i4KDg5W26PXOgVg9f39yqzBj50bbX/PXVNzcXcwkABTqEUgAyKx2XKe+Vkf+fn50/PhxZSr0vQ5YuEuIMcbYPVM+TuPBBx/E//73P4iiiOeffx4AIMuy04BYtVqFVzbaMGOHFSpVhZNUyNlut9phsVhgvzIAtXzgbkUlJSV44oknAFztisrMzERERAS8vb0REhKCTz/9FKtXrwYAqFQqpKSkVKiHGmfOnLlum86dOwcACAwMvG6Z8u6edevWXa37laUA0tLSYDAYsGrVKvTt2xdGoxEvdpgGAHA3eAMATmTl4nKFAbpaWQWDWgX5yhgVvdpxgyRRxFtvvYVLly45Xf/R6HbwdveCXQUIooiMIsfneVbH8gL7rWX44ssvsW7dOhQUFACAsj7RvcIBC2OMsXum4oO7fNbMBx98AABK2v1yFksZSkqtMJlEBPhrHMcbJEiaax9lNxoTU/HcdGVQqiAIeOWVV5CVlQWr1Yp27dohJSUFHh4esFgsICJYrVZMnjwZf/75Z6WzecrP+/TTT8NgMCAxMfGGdRg5cqSyJtKRI0cwaNAg2O12TJgwAW+++SZq166Nn376CatWrYLR4FjFuKjUETwYXbydzlViLUO+pQzWK4Fa3JVVlAVBQFZW1jWrTn9/eA0ysy8iJycHdrsdHlfGu2g0GqUdrVu3xqBBg5Sgb/ny5di3bx/S0pwH+941d+T9zj3AXUKMMXZ/Ks/0KggCzZw5k5o2bUoAKCYmhgIDAyvt0mnQoIEjl4hRQ4L6ypgNnUCCXPnYjMrO89ctIiKCevToQf7+/iQIAomiSC4uLk7ZYVUqFdWuXZuu9/iMjo4mSZJox44dN9X2il0/8fHxlJKSonzWvHlz6tOnDxERrfhyCwGOzLRChfEnuitdOBJAPc3m67bNbBYo1ifKaZ8sSUr3W2hoqDKWB3Dkfunfv3+l5yqv0+3CY1gYY4zdN9555x0lINDr9QQ41sip+KCUJMe/rq4uJFTM9ipeeXi7am9qTMeNtvIH+KhRo2jXrl00ZswY8vT0pG3bttHOnTvJZrNRfHw8aTSaa9pQp04dkiSJkpOTb/v9eXHAaKWOXsYAaln7Mad6V/epSVNGvEx6ne6m2unjoqG3mqvJqL5xOYPBQABIlCTq2rUrHT169La3jcewMMYYu2/069cPAPDrr78qYyV+++03AI7pyQBQ3gsjCITyHh8vbw1wJV9acUHJdc8viiLc3d1vWIeBAwdCp9OhX79+WLhwIQ4ePIhJkyYhNjYWCxcuRFxcHEpKSrBnzx7Ur19fOc5utyMmJgaHDh3CypUr0axZs1tu/40sXrwYH302Xfldo9Jh67GVMJvcAABenl4gVwvGTH9fyV0DABIcK1OX/1xbq1E+yyoqxbzdFuRbnK/l7e3oanJ3d0dISAhmzpwJg8EAH78AlJWVoV27digsLLyt7btZHLAwxhi758oH3548eVIZH3L27FkAQHBoNVSrFqCULSoqgV4vQBSBBvVVUKnEvx2zYrfbkZ2drSSqq8xHH32EkpISHD58GCNGjMCkSZMw54M5OHrwME6fPo3Zs2crA2m/+eYb5biYmBgcOHAA06ZNg4+PD/bv34/9+/c7JYL7N8rH9tS7Mi7FIuWhtKzoysxkIPtyNlJTUx3tJIIAINDdHZIkQZCuBHsADpZcHTRrI+BSiagkjit3+fJlxzmzs3H69Gn89NNPyM/PR/UatbFo0SKkpaVh9+7dt6Vdt4oDFsYYY/dc+eDb8rcqFdWvVx8uLgbld5vNjqIiQnx8HWzYUAatVgeV6upUoes92HRmT9RqlYjqkVGVfv7UU09BlmWcOXMGeXl5KC4uxsypC5CecR6rV6/Giy++CDc3N2zfvh0hISHKcYcOHQIADB8+HLGxsco2evTof3AnnFXMiDtq1CgAQPfu3dG1a1flzVN5sFae4E0AQHl50BJBR4CfLEO+st/p3NZrU/n/dVbViRMnEBMTA2//QGU5g797U3WnCET01wDrvpSXlweTyYTc3FwYjcZ7XR3GGGO3aPHixejduzesVit8fX2V6cGyLMNkMiI7OxuSDFjLAK1WQGSkGtmX7Ug/WwZBEGC3//PHmUqlQuvWrWE0GrFhwwZcvHgRer0etcNq45GwJhj7wwe3q5m35Ny5cwgICMDWrVuRkJCA0NBQZGdnK90ydrsdZrMZOTk5iIyMxPHjx6GFowssTu+C7cXFKLVdnW017PEY/LjhCEpV7sjKvgwiqnTqdzlRFGG325WgKCEhAVu2bLmtbbzZ5ze/YWGMMVYldO/eHVOnToUsy0qwondxxRNPPIGSK90ZapXjwWm1Eg4cKEVmhhWiKEBSqSEazFBpNKgWUw2iLEB9k0+4119/HT4+Pvjtt9/w448/wmAw4LXXXsPly5ex/cD2exasVGbKlCmwWCxo27Yt7HY7jEYjioqKAABjxowBAJQKAkKiovBbQQFKbVbIogxJcNyMuVuO4gwRiiylaNKkSaXBilarVX6eNm0a6tVvgKDQMPj6+mLx4sV3oZWVk/++CGOMMXZ3DB06FF5eXujTpw9KS0tRWlqCb775BoIgwM3NDdnZjjEWZrM76te3wGYXcDGzGtzd3bF9zwEUl5bi1P5TAACrKKJ8RG6tbi8DF0/g0vHdyDyfDkEQYLPZUK9ePUyZMgVlZWVITEzE999/f6+aXqnysT0ZGRkAHEHdxYsXle4mg8GAkpISJd8K4Mgts37derzQ/Tms3ZmMvJJ80JXRKtZsK1zruSInJQcbkzdWek1ZliFJEmw2G0JCQnDu3Dnk5+fh4IEDN0yGd6fxGxbGGGNVSvfu3TF58mQAgM1qhaurK4gIly/nAHB03+Tm5sNqdcXBA2UoLCzEwYMHYSnMgVot4so4UxARZFmGp6cnUn+chS+mvokTRw+jc+fOyniPI0eOwHrlGuULJVYllWXEHTx4MEwmEwDgu+++w9SpU6FSqTBmzBgIggCNRgNvH29s+2MP3HzdQSBIKgHGSD0kEpGXkqecS+ulVa7h6uqKPn36oKSkBA0bNgQAPP3008i4cB4qlQrHjh1zqtvcuXMRExMDo9EIo9GIhISEv1308d/ggIUxxliVM3z4cMTHxyOmYQIsFotjTEZcHLy8vDB+/Hh4eXnh1CkdHnqoO3r27IkhQ4agZ8+ecNcZYLMDWo0aTz/9NAIDAzFgwAB07NgRU6dOxa5du/DDDz/AYnHM5y0pKVGy2FZVlWXELS4uVt687NixAx06dIBKpYLkYkZpaSn07j44l3kR57IdA2XJTsg7UQS1mmAIUMOllgugAgSjAI1Wg2PHjqGsrAzLly8HAMTGxgIAbDYbJnwwDy+9PBqJiYlYu3Ytiosd6fsDAwMxefJk7N69G7t27UKrVq3QtWtXZRDy7cYBC2OMsSpp5MiROPL7HpSVlWH69OmoV68eysrK0L9/f7Rp0wZlZWXw8/NDnz59AAAeBQV42WiCqyjiuX79cf78eQiCgNGjR0On02Hz5s1YvXo1kpOTcerUKXTu3BlxcXEQBAERERH3uLXX1717d7z//vt48803UbduXezbtw+rV69W3rykpaXBbDZjypQpsBY6ApTS3CxQmQWWvMuoGa2BWiXAw08FucwG76IyeD3sBZQBxanFyM/LR0FBAUpLS+Hh4YHt27fjxx9/BOCYpfTmiOfxxmuvoqSkBO3atVPGsXTu3BkdO3ZEREQEIiMjMXHiRLi6ujqtu3Q78RgWxhhjd11BqRXbUi9BJQkQBAFEBEEQIAAw6lRw1cio27wjnnxuGL6Y/T+MGjUK9erVw6pVq+Dj4wMfHx/k5ubi/PnzqFatGronLcbOoiK8U5CPIrsdc+bNw8NdumDTpk3YuXMnvv/+e9hsNmRmZqJ3795IT08HEaFZs2ZYvXo1Jk6ceK9vyQ0NHToUQ4cOddo3cuRI9OnTB/PmzUN8fDw++OAD6F1c0fntJLi6eeKX2a8jIewABvTXolPHU+jVyYCHcotRx0/CVm0+XnYVUWDV4Ny5czCbzQCAgoICnDx5UpmFNO0hFxiCa6Bdm3Z49Yc0bN68GX379r2mfjabDd999x0KCwuRkJBwZ27Cbc+xe49wan7GGLt/7Dx1ifKKLdfst9rsdLmwlNIuFdL5nGI6eSqNANDWrVudyr388ssUHx+v/F6wLYWO1Imhw1E1aHN4dWofGUmiKJIkSRQZGUmDBw8mrVZLRERpaWnk7e1Nv//+u3J88+bNadiwYXemsXfQzaxFdPzoBgJAL7zgQaFBalKrBDIaRQoJUVFMTC2n823YsKHSFP1t42uSTqcjtVrtVH7//v3k4uJCkiSRyWSiFStW3HIbbvb5zXlYGGOM3XXnLhdhy6azeLCODzyDXCGrHINg58yZgzfffBPZ2dkQBAE1atTA8ePHsWTJEjzyyCPK8X369EFOTg6aNWuGSZMmITs7G0QEN0nC276+6PXpAqibN0NWVhZSUlLQr18/FBQ4Vjr29PREVlaWMvAWcLwhEAQBoiiitLTU6bP73ZkzqQgOro6ZM/0RXevqlOWP513C/v0lOHQoD6J4JYn/mZ3Ap21wsdCOATuq46fN+wGyo3qwH9p0SsSCBQuUMSyAo8soLS0Nubm5WLJkCebPn4/k5GRER0ffdP04DwtjjLEqiy6WYtva01j6v9346s0UJHZ5FJIkYejQocjOzkZiYiJiY2Nx5MgR2Gw2DBgwADt27ADgSJb27bff4qeffsJLL72ES5cuwT/AH/4N/XHZbsPQ9HTEvTAUwyYNQ/W61fHEE08owQpw9QHZrFkzLFu2DPv27UNcXBx69OiBffv2XTdYmTNnDkJDQ6HVatGoUSOlPpUpKyvDhAkTEB4eDq1Wi9jYWKxater23sSb5OMTBEmSsHdvC/TrW4yOHdIwdEg6/jxtgZu7BLu9woJCOacBAOZBa1C/dSKCAwMhCoBGo0FmZibCwsKUops2bcJjjz2GZs2aIS4uDo0aNUJsbCxmzJhxR9rBAQtjjLG77uieDOh0Mh59qT6mJL2A5T8tg91uhyRJcHV1VQKJcpcuXULLli2xefNm+Pv7Oy3y5+LigvSz6Ti38xzKF8c5lXYKH0/4GKWXHAnnXF1dlYdtu3btkJubi1OnTmHo0KGoVq0aXFxc4OHhgdq1ayvnnTNnDjw8PJQ3L0OHDkWvXr2wZ88exMbGon379sjMzATgCFDGjRsHd3d3iKIItVqN8ePHo0+fPjh8+DAGDhyIrl27IjY2Flqt1jFeRxCUWTl3klqtRmhoKD77LAnjx0/E3r2/o3HjROzcUYKmTXpAll2vFi7JAUQZr3+0DPPmzcOcya/js0FxeO7pRCxduhSNGjVSihYWFiI2NhZz5sxR9tntdmXxytvuljubqigew8IYY/ePt8ZupLVfHqakpCQCQG4GLxIcq/mRRqMhAOTu7k5dunQhFxcXEgSBRFEkQXCU0Wq1NH36dAKg7IMIUnurSVALTuMvZLNMoiSSi4sLASCDwUAxMTE0YMAAAkDJycnXjGFJSkoiWZZJkiR6++23yc3NjURRJK1WS4GBgaRWq0mlUtHgwYOJiGj06NHk6upK7u7uNH/+fHJ1dVXG0AQEBJBGoyGdTkfe3t702GOPKXVbtmzZHb/Xs2fPJlmWCQCFhYVRUlISDRgwgARBoHbt2lFISAiJokh+fn60Zc4QGt/WrNS9RngoDWwdSq0eaER6vZ5q1apFbm5uJAgCCYJALi4u1LZtWwJAjz76KAmCQGvWrLml+t3s85sDFsYYY3fdhLHJ9MaQX6l+vfoEgAY9P0h5iIuiRADIbDbTyy+/TL6+vqRSqahevXoUGhpKAQEBBIAWLFhA9evXdwpODLEGgnDlPLKo7BcEgfz8/BwBjCxTVFQU9enThwDQgQMHrqlffHw8eXt705AhQ6i0tJRE8WrA89hjj9GhQ4coIiKCZFmmjIwM8vPzI6PRSLNnzyYiInd3d/Lx8SFRFKlFixaUmppKDRs2JAC0Z8+euxawJCUlkVqtJkEQ6PHHH1faoFKplDq8/vrr1LBhQ4qIiCCNSiJfg0w6nY68vLxIlhz3UKfVKuWrV69OU6ZModjYWKeAsXbt2rccrBDd/PObu4QYY4zdfWIKpn/2NPbs3eP4Vb76OLLbbQDg1O0jyzIOHDiAP//8E+fPn0dMTAz69++PPXv2OJ226GARAvwDHOe5shpxcHAwNBoNzp8/DwBo37490tPTkZycjKZNmzp1AwFXV0i+ePEivv32WxiNRtjtjnO5urqirKwM0dHR6Nq1KwRBwIIFC1BaWoqSkhK8/fbb0Ol0KCkpQUZGBiRJwqlTp5CamooDBw4AAB544AHlWidOnPj39/IGpk2bhqeffhpEpCSgA4AuXbrA09MTWq0Ws2fPxs8//4yjR4+izGpHfJgJjzzyCLy8vNDvkVZQSwIiI6oDcCyGePbsWbRt2xb79u3Do48+ikcffRQA8OSTT6Jt27Z3rC0csDDGGLurFi9ejHfeewN1YxOVfZ9++ikkSVJWBQYAu52QkZGBwsJCWCwWGAwGxMbGok6dOti/f79SrjyHiMlkgt1uR3p6utP10tLS0LVrV2g0GgCODK1FRUW4dOkSkpKSrqlfVlYWbDYbiAgDBgxQBssWFhZCkiRcuHABACAIAkwmE7Zt24aoqCgle+7PP/+MYcOGAXCMbTl9+jSGDh2KgABHIGUwGJRrjRs37pr63i7lgdeDDz6o7Bs7dixkWcayZcuQlZUFT09P6PV6LFiwAKIoQpYEnL5chhkzZiAiIgKfLP0VFhvh9wMHlXO0b98eU6dOBeAIJMvvz1tvvYUmTZpg586dd6Q93CXEGGPsroqPj6eBzw+i5/p+o3QzuLi4UGBgoNJlAYAEiOTu7kGCIFB4eDh5eHhQkyZNSBAE0ul0ZDQaqaaHgSTh2rwhFc9rMpmcui7MZjMJgkB9+/attH7p6enK8Vu3blW6hACQXq9X8r/07t2bqlevTvHx8dS/f39yd3d3unb5MWq1mvLz85Xrq9VqpUxYWBi99tprt/0ez549m8xms1N9yq//1+6xxx9/nCIjI8nNzU0pW96NVPHY8rFFqDDOqOI2evRoGjduHBmNRjp79uxN15W7hBhjjFU55X/1x9dtCr3WCEmSoNFooFKpoFKplAyrACAIQHb2JRARzGYzcnJylL/eVQSUFeXhyKV81PIWrukuUKsdeUUiIyORm3tlPZ0racdycnJARPjss88gyzJsNpvTseW5QARBQEZGBtRqtbK2jtVqha+vL+x2O9atWwd/f38AQKtWrWCz2bBp0yacPHkSmzdvhtHoaJ/FYoHRaAQRoXr16hDFq7VVq9XYvHnzbbq7DosXL8YLL7yAnJwcx71SqZzaT0RK95harca2bdtw4sQJ5Obmovz9lsViUcqXH1Nx9k9lM4Fmz56NAQMGoHr16pg7d+5tbRPwL7uEJk+eDEEQMHz4cGVfSUkJhgwZAg8PD7i6uuKxxx5TlsW+HiLCm2++CT8/P+h0OrRp0+aO9+sxxhi7+8q7W7w8vSFKKsTUrouoqCjk5OQgLS0NNWvWVMrayQ4BAkRBxO7du2G322Gz2iAJMvJKilFsBdy0Ag5kEOxXjpHUeoiiqAQhp0+fRnh4eKV1CQoKwq+//qp05ZTLy3OsZmw2m7Fu3TrMmTMHaWlpABwPchcXFwwaNAiFhYXw8fGBr68vhr2/CCXmULRq1RqRkZF44IEHlMCoefPmaNKkCTQaDYqLixEUFKRc6+jRo0hOTnZ6jv5br732GohIWR+prKzM6XMPDw/l5/IuNCKCt7c39KprzyeLwrU7K+Hu7o633noLoije9iAMwD/vEtqxYweFhoZSTEyM01SwgQMHUlBQEK1bt4527dpFjRs3piZNmtzwXJMnTyaTyUTLly+n33//nbp06ULVqlWj4uLim64PdwkxxljVV97dkrxhE40csoamjp9LGo2GfHx8rulO6dmzp9Ktcu3mPHUZkkyiq4dTF0aHDh1IkqTrdheVbwsXLqy0juXTmkVRpLi4OKdj3NzcqFq1auTq6kq9XhhDktmPIIrk4R9CBoPhmu6hTp060cqVK51m55RfQ5Zl6tev3225v6WlpU7nDg0NvWHbK3b7qFQqcteBxL+5XzezRUZG3nSd7+i05vz8fIqIiKC1a9c6zV3PyckhlUpF3333nVL2yJEjBIC2bdtW6bnsdjv5+vrSe++9p+zLyckhjUZD33zzzU3XiQMWxhir+kpLS0kSJeqd+A69OHQNZabl0axZs0iv1xMAio6OppSUFHriiSecgo0ezV+iD55ZSfPf/IVCQkJIJUkECKRTu17zsDSbzdS+fXsKDg4mrVZ7zVgOtVpNBoOBunbtev06ShINGDBAqYMgCEodzWYzBQYGkk6nI5VKRUEvfEFSSDhBkp2uUbNmTVKpVNSuXTtq27Yt1atX77oP+Jo1a96W+3vq1CnlnI899hg9+eSTlV6vevXq1+zTarUky7cWmFQMeMrP0aNHD6pRo8ZN1/mOjmEZMmQIOnXqhDZt2jjt3717N8rKypz216hRA8HBwdi2bVul5zp16hQuXLjgdIzJZEKjRo2uewzg6D/Ly8tz2hhjjFVt1hLAy7M6jp7YiX6P1oBXkAGDBw9Wxo3Mnz8ff/75J3744QfUq1dPmTX0VfL72HzkJ5RkaLBw4gqYXHwQF94SsqSCMaYxJI0BapM3AMcYldWrV6NTp05YuHAhXF1d8dJLL6FOnTqQZRkWiwX5+fn44Ycf8NZbb11TR7VajQYNGkCWZQDAsmXLYLVa4ebmhs6dO6OsrAzp6emoU6cOfvvtN5ye0QMuahGiuwdEWcZ7fRNQWlqKxx9/HFarFWvXrsW6detQu3Ztpfuld+/eGDhwIEwmEyIiItCuXbvbcn+zs7OVn5cuXVrpLCjAkTn4r0pKSmC13tr1qMI4F19fX4SGhqKsrMwphf/tcssBS1JSEvbs2YNJkyZd89mFCxegVquVKWblfHx8lGlglR1TXuZmjwGASZMmwWQyKVvFPkHGGGNVk96oxnNPPo/dR37B6o3LcOTIEQwaNAjFxcWQJAkZGRkYMmQITCYTdu3ahbCwMNSIqgEBApZu/RDbj63GwNG9QES4UHQB9bp3Q0H6SQT6usOan4XExESo1WoEBARg7ty5GDx4MMaMGYP33nsPsiwr6fX9/f0hiiLGjx9f6TTckSNHYsGCBbDZbCguLlbGrHzyyScYPHgw3N3d0apVKzRq1AiCIGBEm3pwyc1AY1875v20A4sWLcLXX3+NZs2aQavVQpZl9OjRA/v378fMmTOxadMmbN26FTVq1ICvr+9tu79bt25Vfm7dunWlZaKjo5UBubdLjRo1YLPZEBQUhNWrV6Nr16639fzALQYsZ86cwbBhw/DVV19Bq9X+/QF30NixY5Gbm6tsZ86cuaf1YYwxdnPGzxiBRzu+gCkz3kXdunWxb98+rF69Gg0aNMCaNWtw6dIlXLx4EQCQmpqKY8ePga4sEpS05QPENY/Gc6t+xiUjIKtE2Avycfr0aRARfvzxR1gsFhQUFEAUReTm5iI1NRWdO3dGWloapk+fju+++w7nzp1T3t4sWbLkmjp2794db7zxBgDHytD79u3DqlWrlD+uLRaLMtMGAF4fOxqjEjQ4V0D4I9uGfv364Y8//sDZs2fRr18/pS7PP/88hg0bhoKCAjz44INYvXq106yhf+vzzz9Xfq7sLQoAaLVaEJHSfkEQEBgYCFdX18rLq6+/cnX5OY4ePYqsrCwcOXIENWrUQL9+/f5pE67vVvrGli1bRgBIkiRlw5U+LEmS6NdffyUAdPnyZafjgoODadq0aZWeMzU1lQDQ3r17nfY3a9aMXnzxxZuuG49hYYyx+0dWej6NGraWVn95RNlXvn4PKhkn4WHydYwNUWlp369pNP1YOrn1HUiySkX4yzgK4GoOFEEQyGg0koeHxzUDeMvXwFm+fHmldSwfy/LX9Pm9e/emLl26XHvA4Z+ITqwnIqLi4mI6e/Ys2e12Gj16NEVHRxPR3z9HrVbrP76n5fX9673Q6XR/OxZFFiQSr6wN9Hdlb7T17NmTcnJybqned2QMS+vWrXHgwAHs27dP2SouyR0XFweVSoV169Ypxxw7dgxpaWlISEio9JzVqlWDr6+v0zF5eXnYvn37dY9hjDF2f/Pwd0XPLlH4MSUNqXsdKx53795dGcsCOMaStGzZEkSEy/lXVkW2lmLrspM48MMpqJ9+xpE3pMI4inLlqfSJCC1btkRxcfE1ZdauXYvw8PDrdl+Uj2Wp+Hwqz79S2fPJHtYWNp84AI63GAEBAbBarVi6dKlyjes9R+Pi4uDj4wMXFxc0atQIO3bsuO69Kysrw4QJExAeHg6tVovY2FisWrVKmTL+V5W1vZy3mxcAwEo22Imc8uD8E/n5+TCZTP/qHNf1j0O5K/66wuXAgQMpODiY1q9fT7t27aKEhARKSEhwOiYqKoq+//575ffJkyeT2WymH374gfbv309du3blac2MMfYfl3epmEYOWUNrvjhMRM5TcgHQwIEDyWazkU6nU1ZrliSJigss9PZXv5PP+r0kCAKptFqCWk2CvvK3AxVV3C+KImk0Gjp06NB165iUlEQajYYWLVpEhw8fpueee47MZjNduHCBiIh69epFY8aMISKiw1E16JvgEJoRWo1+/+IL2rRpE7Vq1YqqVat2Tc9DRTVr1iRJkmjBggV06NAhGjBgAJnNZsrIyKi0/OjRo8nf359WrFhBqamp9OGHH5JWq6XVq1crbWvdurVTWyt78+Lr60sa1bUZa6+3VXz7VbNmTYqJiaGAgAB6/vnnyWQykV6vp/nz59/KfwEiuourNf81YCkuLqbBgweTm5sb6fV6SkxMpPPnzztfFM7z3u12O73xxhvk4+NDGo2GWrduTceOHbulenDAwhhj95dfPjtEw4esoYKcEiJynpKLK90LRETR0dFKgCHLMhERLf/9HPms30sqlZogCCSFRZAYXI2qvfTaNV0/FVXcHxkZSX5+fvTcc8/dsJ6zZs2i4OBgUqvVFB8fTykpKcpnzZs3pz59+hARUdpzz9NnQcEUplaTRpbJw8ODevXqRenp6Tc8v8FgoJiYGOV3m81G/v7+NGnSpErL+/n5KatCl3v00UfpySefVPLGfPrppwRAWZZAFEWqVq2a0v10dTqyQMaGRgoZFUKC5i9dawJI5X3ttHEA9MYbb1CjRo3I09OTPD09qXr16qRSqW4Y/F3PXQtYqgoOWBhj7P6yZekJGvnCGrLb7EREtHv3bqeHore3Nx0+fJi8vLyUfUajkXr16kV9Bg4jn/V7SfNgK8J1k8s5Hs5ERGPGjKGNGzde81lsbKwScPxbZdnZdKJNWzocVYMyPvjgpo655XEyROTu7n7Nm4wePXpQSEgIxcfHk7e3Nw0aNIgkSaJPPvnEaYyMi4sLaTQa5ed69eqRVzMvqr2oNumj9GRsbCRIN5dz5a/bjz/++E9uG68lxBhjrGpTa2XIsgjhSup3k8ns9HlmZiaio6OVGUMAEOATgtOnT2PpF59C1aMHhg73gWfk9acF+/n5Kedq27at02dEhN9//x2hoaG3pT2ymxuqr12DGkcOw/smU+2Xjzu5ldQe7du3x7Rp03DixAnY7XasXbsW33//Pc6fP4+RI0fi8uXL+OSTT+Dr64uJEycCAPR6Pc6cOQO73Q6z2Yy4uDjUqlULs+bMgqtJj+JfCuDeyh101gKVIEGWr6bjN5lNePTRRyFJV2cL9e7dG7NmzUJUVBQ6dOiAZ555Bv3798fhw4dv8a7dPA5YGGOM3RPHj11CSZkdF8/kAwBSfytQPvPy8Kr0mBN/HMW0t+dBkiWUFOagzOwP6cMVkGPjKi2fkZGBvXv34tNPP71mTZ1y77zzDg4dOvQvW3NV+VTfO2XGjBmIiIhAjRo1oFarMXToUGXqdPfu3TFt2jQYDAakp6fjzz//BAA8//zzeOutt2CxWGC325GVlYVz587hhfEvIGddJlK//RNn555F8dkSNFJr8D9vf4R7esI/0B9ffP4Fvv/+e1grZJX7/PPPlQUWIyMjMX/+fMTGxmLGjBl3rN0csDDGGLsnQsLNKBAIn767A5++9BtOpGTB0+hY/TjnygrLRp07AChZZ+12O4aOegZdunRBfI2WOHKwAUo2rYMt9ShElYSgQD9IkgRJkiDLMnx9fTF58mTs27cPW7Zscbp+cHAwnn76abi6uiIlJeUutvwqT09PJWFeRRkZGddNKOfl5YXly5ejsLAQp0+fxtGjR+Hq6qpklx06dCiys7NBRJg1axbUajWmT5+u3IMLFy6gpKQEKpUKvkZfDHq6DT56agIWhFRHsFqNHcXFGJ9xAaEmD+zcvhMPPfQQwsPDMXbsWJBjKImy1ahRQ6mX3W6vdBXn24UDFsYYY/dE0y7h6NU5EqUCoaTA8fajd5cXIIoiyqyOFZTzih2p5m1WGxrVbwoiO3bu2Y5ffliDrJyLSPnjAEqmvQUqKIC9zIYzZ8/DZrNBq9Wiffv2yMnJwYYNG1CvXj00bdrU6fppaWn4+uuvkZ+ff8/SaNzM1Omvtp/G8KS9WH80A1abXSl3vanTFQ0dOhSff/45VCqVsgRCedbebdu24Zdvf8GZUjN2rZ6OxloZP1cLw2dBwXiuXQf0GzQYqampeOihh2C32zF69GjlvGPHjsWmTZuwaNEiPPPMMxg7diw2btyIHj163Lmb9Y9GyFRBPOiWMcbuP8UWK325PpXyckoo489cstvt9M477zhPv3ULoZmvfUMDn3mBJFEmUZCoUWQ72v5jKlX74BMKMTkPBm3Xrh199dVXpFarr5mOW9l2vcSmREQWi4XGjx9PYWFhpNFoKCYmhlauXOlU5t1336W4uDhydXUlLy8v6tq1Kx09evSm78GNpk4XlVrJpVZLMjZ+nEJe+ZmW7z1LKSkptHTpUkpNTb3pqdN/N9PpyQcfpFNP96DUxER6+7Gu5GEykeoGM5369+9PISEhpFarycvLi1q3bk1r1qy56TZXxLOEGGOM3ReKLVZad+SC8nt6eroSTGzdulXZ//LLL5Ovry/Fx8cr+7JLS+nUpDr08ejHqHnMA06BiNlsJkmSSKvVUlpaGnl7e9OUKVNIpVLRpEmTqGbNmuTp6UmCINCmTZsqrdv1cp7s2bNHKdO+fXtauHAhHTx4kPbt20cdO3ak4OBgKigouOl7cL2A4vczl0kTVJvMsW0o5JWfadmes7Rx40aqWbMmaTSam546fSve79aJhvV+jlbNn3vbznkjN/v8FogqSRF4H8rLy4PJZEJubq5TpkTGGGNV29bULMQGmuGicYxTsVgs0Ol0ABwrDj/yyCMAHGv6rF+/HvXr18cPP/xQ6blKSkqQnp4OjUaDmTNnYsGCBfDx8cHEiRORmJgIwDEoVhRFp6ywDRs2rDS7rL+/P1577TUMGTJE2ffYY49Bp9Phyy+/rLQOFy9ehLe3N5KTk9GsWbNbvyEV/HGxAK2mJiu//+/xGHSLu7OL/a6aOx2/bD+GUaOeR0idunf0WsDNP7/lO14Txhhj7Aa8DVqcvVyMKF8DAMe4jri4OJw+fRrr1q3DI488Arvdjl9//RUFBQVO400KrDZ8ee4SjheVwEZAwIa1SJAIjfv3wdKlS2Gz2dC1a1e0bt0ae/bsQcOGDTF16lS0bt0a/fr1Q40aNbBq1arrTiEuLS29ZrFfnU6HzZs3X7c9uVcGDLu7u//bW4MwL1ccffsh5JdYUWazw8905xcefmjQcGhbZSIkyvuOX+tWcMDCGGPsnqru7YrNJ7LgqpURYHa8WRk5ciR69uyJjz76CP7+/ti7dy+ysrKg0+nQr18/9O7dG3v27IGhaQucevJZuKceRd6vq9B/wyrskCQM/3guzp07Bx8fH4wePRoGgwE+Pj6w2WxQqVRwdXUFESmrDEdFRVVat/KcJ82aNUN4eDjWrVuH77//vtI1ewDHgNnhw4ejadOmqF279m25P1qVBK3q+ism/3/Bs4QYY4zdc02re+DA2RxkFzpmB3Xv3h0ffPABDAYDXn31VSxZsgTVq1fH6tWr4ePjg7S0NGRlZWHf6TQAQAtXNWwrvsfbmRl46fw5HDp0CJ06dcLWrVthNpudrvX2228jKioK+/fvR0ZGBp544onrLth3o5wnlRkyZAgOHjyIpKSk23dzGAAOWBhjjFUBgiCgfS1f7DiVreyrmE/Ebrfj0KFDaNSoEQBg48aNuHDhAqbM+wQAcKBaTSz/bikOR9XAimcHoqSkBEuWLIG/v79yvvKcJ3PnzkVpaSksFgvS0tKg0+n+cc6TioYOHYqff/4ZGzZsQGBg4O28PXfMuZxiZOaXoNRa+RujqoS7hBhjjFUJgiDAfovzQF4M8UGYToNnD/2JjwOrY/0HC7DywbqVlq2Y86R8IG95zpOhQ4fe8DrlOU/KysqwdOlSdOvWTfmMiPDCCy9g2bJl2LhxI6pVq3ZLbbiXtp+6hAhvA45dyEd2oQUmnQoAIF/nDdK9xAELY4yxKqNukBmHzuWiln/lXTSVedjbjGdzPTH/bBag1SHS5foDU0eOHIk+ffogLi4O8fHxmD59OgoLC9GvXz8AjjVyAgICMGnSJADAig0rcP7cebRKaIX09HS89dZb1yRRGzJkCL7++mv88MMPMBgMygBek8mkzHaqqtz0atQOuPl7fS9xwMIYY6zK8DfrcCD91gIWABgXHgAXSYKfRgXxBmv5dO/eHRcvXsSbb76JCxcuoG7duli1apWy+GBaWpoyPoWI8MKaF3Du83OgSwSDqwEdO3bEF1984TQuZu7cuQCAFi1aOF1r4cKF6Nu37y2142670+se3U6ch4UxxliVUFJmw9rDGWgS7gEPV829rg5Sc1LxyA+PAABWProSgYb7Y1zKzSqz2bHjVDaaVve8p/W42ed31eukYowx9v/O6UuF2HjsIjrW8asSwQoAhJvD8e4D72JEgxH3XbAyZ84chIaGQqvVolGjRpUmxSsoscJVI6OsrAwTJkxAeHg4tFotYmNjsWrVKqeymzZtQufOneHv7w9BELB8+fK71JKrOGBhjDF2T21NzcLlojI8VNsXknjzXRQ381AudzMP5blz5yImJgZGoxFGoxEJCQmQj8voX7v/P27bvbB48WKMHDkS48aNw549exAbG4v27dsjMzPTqVx+iRUGrYzXX38d8+bNw6xZs3D48GEMHDgQiYmJ2Lt3r1K2sLAQsbGxmDNnzt1uzlV3eImAu4bXEmKMsftLTpGFfvo9nTJyi2/52KSkJFKr1bRgwQI6dOgQDRgwgMxmM2VkZFRa/mbWBPrxxx9pxYoVdPz4cTp27Bi9+uqrpFKp6ODBg/+4jfdCfHw8DRkyRPndZrORv78/TZo0yancwfQcysgrJj8/P5o9e7bTZ48++ij16NGj0vMDoGXLlt22+t7s85vfsDDGGLsndv2ZjU51/OBtvPV089OmTcOAAQPQr18/REdH46OPPoJer8eCBQsqLf/FF1/g1VdfRceOHREWFoZBgwahY8eOmDp1qlKmc+fO6NixIyIiIhAZGYmJEyfC1dUVKSkp/7iNd5vFYsHu3bvRpk0bZZ8oimjTpg22bdvmVDa/xAqjVvWPlh+4F3iWEGOMsXtClsR/NEul/KE8duxYZd/1HsrlbvWhbLPZ8N1336GwsNBp7aKqLisrCzabTZn1VM7HxwdHjx512ldqtWP7qWw0fKAl3nr7HWTmFqH7I52Qmpp6w+UH7hV+w8IYY+yeoX8wUfVGD+XrLWJYvibQiRMnYLfbsXbtWnz//fc4f/68U7kDBw7A1dUVGo0GAwcOxLJlyxAdHX3LdbwX5syZg/j4eADAM88887djepKT5qJ/h8ZY98sPyLxwHq++NAwRERHK8gN2ux0NGzaEwWCAt7c3HnnkERw7duxuNecaHLAwxhi7J3QqCcVld+ev+JtdEygqKgr79u3D9u3bMWjQIPTp0weHDx++K3X8NyoOtJUkCYGBgU4DbTMyMpyWH6g40Hbw4MFo07o1RFHE5MmTleUHNBoNhgwZgpSUFKxduxZlZWVo167dvWoiByyMMcbuDYNWRn6J9ZaPK18TKCMjw2n/Xx/KFd3smkBqtRrVq1dHgwYNMGnSJMTGxmLGjBm3XMe7rXxMz4ABAxAYGIht27YhJycHDRo0QEpKCtatW+fUtfXFF19g1KhRyMjIwP79+7Ft2zbYbXa8/fbbWLFiBZYuXYoXX3wRffv2xY8//ohnn30WycnJSEtzLDaZnp5+19vIAQtjjLF7whGwlN3ycRXXBCpXvibQ3403KV8TyGq1YunSpejatesNy9vtdpSWlt5yHe+migNtFy9ejLNnz6KkpAR169aF3W5H8+bNUVBQ4LT8wOXLl3Hu3DnMnz8fO3bsQO3ateEfWh12ux1du3ZFSUmJsvxAcnIynnnmGUyePFm55uuvv45t27YpAcxdcdvmJd1jPK2ZMcbuLzmFFtpzOvsfHZuUlEQajYYWLVpEhw8fpueee47MZjNduHCBiIh69epFY8aMUcqnpKTQ0qVLKTU1lYYPH05arZYEQaAGDRrQ9u3biYhozJgxlJycTKdOnaL9+/fTmDFjCAD17t2bwsLCSKPRUExMDK1cufLfN/42eueddwgAqVQqUqvVpFKpCICyybJMgwYNIiIii8VCoaGhJMsyCYJAAEgURafynp6elJiYSEREEydOJABK2b9uffr0+df1v9nnNwcsjDHG7gmrzU6bjmf+4+NnzZpFwcHBpFarKT4+nlJSUoiIaPbs2aTRaEgURYqPj6ft27fTrFmzyNPTkyRJIgCUkJBAGzZsoGeeeYa0Wi2FhISQKIqkUqlIlmXy8vKi1q1bU7du3Zzyt3Tt2pUA0FNPPfWv2z979mwKCQkhjUZDISEh5OfnRxqNRqlzRRaLhcaPH09hYWGkVqvJx8eHfH19nYKTwYMHKz83b95c+VmlUlH79u2JiGjUqBfIz8+Lvv76a6pdu7ZSxmg0kl9IdSU48fPzox07dpDZbCZRFMnLy4u8vb1p/PjxyjVvVy4WDlgYY4xVeRuP/fOApTIVE8q99tpr5OrqSgAoJCSEnn32Wapdu7ZTUrWXX36ZRFGkXr160bBhw8jT05MAUEREBK1cudIpqdro0aOdAgRBECgyMvKa4KIii8VCnTp1IlmWCQDpdDqaPn06JSUlkSzL5OHhcc1bi4CAABJF0emNzqhRo8hgMJCPj8815YOCggiAEowJgkAajUb5Wa1WU2BgIBEReXio6IUXPGjkqHpkNOqVc/j7+1OtRs2U+yUIArm7uzudZ8SIEWS1WsnX15cEQaD58+fflu+MAxbGGGNV3u0OWMqzvJYHLvPnzydvb29q2LAhmUwmkiTJ6c2An58fxcfHU/Xq1ZU3Ke3bt6eGDRuSVqslk8lE8+fPp/z8fPL396fu3bsTANJoNNSkSRPlgV+vXr1KA5fytxiiKJKHh4cS8JR3yQwcOFA5318DEYPBQEOGDCGtVqvUpeJbkett5V08giCQTqcjg8FAZrOZiIhMJjV17OhKarVIXboanQKdivUsr1NUVBQBoIYNG5KrqyvFxsaSIAgkSRIdOnTotnxnHLAwxhir8m5nwFJaWqoEJBXT0/fu3Zs6d+6svJ0YOXKk0hUjSRI1btyYVCqV8ialR48eFBISQo8++iiFhISQl5cX6fV6EkWR1Gq105sLnU5Her2eTCaTMs6jPCBKSkoiABQZGUn9+/cnvV5/zfiS0NBQpwCm4niRwMBAkmWZ9HrHmxC9Xk+SJJEgCGQwGMhoNF43aCk/h4eHB+l0OlKpVDRmzBhq3z6EDEYV1apVi5KSPqeAAOc3Nu3atVMCnqioKDIajeTl5eVURq1W04oVK27b98ap+RljjP2/Up5Qzt3d3Sk9vY+PDzIyMvDggw8CAGbOnKksDBgaGoqUlBTYbDao1WqnhHI6nQ6XLl1CTk4OioqKIAgCLBYLAEfCuxYtWsBmsyEmJgbe3t5wc3Nzqs/7778PAGjbti1WrlyJbt26oaysDDqdDgBgNpvx559/AgC6du0KSZIAABEREQCAnJwc2O126PV6AI4ZTna7HYIgQKVSoaCg4Lr3QhAESJIESZJQWloKURRx/vx5vPLKAwgMMOHQoUN48sneSE93nhq+bt065RrHjh1DXl4eLl686FSGiNC9e/e7np+GAxbGGGP/KV999RVsNhu6d++ORo0aKdlsg4ODAQCRkZEYP3486tevD1dXVwiCALvdjueeew4PP/wwWrVqBQD4/vvvUVBQAEEQ4O/vf02Suc2bN2PZsmVQqVQ4ffo0srOzAQA9evTAN998gz179gAAfvnlFxQVFWHjxo0IDAxESUkJAMcKyOWMRqOS9be8vgUFBbDb7cjKygLgWF6AiGC325GXlwe73X7de6BSqUBEyM3NVYKrRYsW4d1JPyC2rhWDBgU4lddqJTwzsiH8/PwAOIKSvy6bIAgCzp49ixEjRsBmszmtw3Q3cMDCGGPsP8HT0xOCICgLIC5cuBCxsbH49ttvnd5+HD58GOnp6YiIiEBBQT6ICB4eLmjSpDEsFgtWrFgBu92O3r17A3DkOTl37hzKypxzxhQVFaF37944ePAgLBYLHnjgAQCONYp69OihBBTnzp1Dbm4u/vzzT2RlZSmBj9V6NWnewoULoVarATgHMoAjUBBFUQl0/npsZUpLS5UcMkSEiPoRKLGWIOuigJMnSrBo0XlIIlAekpSU2PD5rL0IDAyEIAgICQm5ZtkEIkJgYCD+97//obi4+K6n6eeAhTHG2H+CWq2GXq9HjRo1IEkS9Ho9PvzwQ+XhXr7QoSAIGDfudbi7/4HU1D+uHF2MF7qVoW6QH0RBQLXAYOzd7XhDotPpMG7cOLi6ujpd74svvkDdunVRVFSE0NBQJWnd+++/7/SwHzBgABYvXgwAKCkpURYVrFhGr9ejuLgYAJzenMiyrLxVsdlsqFevHry9vWEymW7p3qz1Xgu/5n448yewf28ZSooJod61AQiQBEdXVFmZFSkpKZAkCZcuXYKvry+6det23QUqx40bd0t1+Ld4tWbGGGP/CRaLBcXFxTh69CiCg4Px3XffYeXKlZAkCUSkdNGEh4dj1qx3kJV19S1FdrYdP/+ch6MXHOM1sjIv4I/Tf0IURdjtdowfP/6a6x0/fhxWqxWlpaV44IEHsH//fgDAsGHDlDImkwl2IuXtiyRJTqsgl5+/qKhI2adWq2GxWGA2m5Gfn+90zSNHDkOn0yvjXf5KEIRrF5QUAUESYLlkQYmlBHabIyBKvXAQAgTY6Gp9AgICUFJSguzsbBQXF+OHH3645nxBQUGYMmUK2rZtW2kd7hR+w8IYY+w/ISsrC3a7HS+++CLy8/Px9ddf49dff0X79u2xd+9e5U2L0WhERER9AIDexfH2gAj46tcT8HJ1gSAAl4uKQCDUCYuGp6cnzGYztFotvL29leu9/fbbSE5OBgB069YNu3btAgCnsS75BhM+/Ggeao57FwCcghUAlY5DKR/Ym5ub61ReEICSklJcvnxZGS9TUaNGjaBSqZz26Uw6CLKAtDlpCBsbBv9e/ko/UKuYxxHhXw+iIAIQEBEQjrNnz8LDw0Opq0ajUbqqzGYzRo8ejbS0NDz11FPX/R7uFA5YGGOM/ac8/vjjuHjxImbNmgWr1YpffvnFaVxIWFgY9u8/gqAgV7Rp7eJ07JnLuRAgQBQENI5ogNySfGRmZiInJwclJSXK6sflNBoNAODTTz9Vgovyrh0AsJ9Ph6DVIm/+HGWfwVh5F8tflb/Z0GgAUQTE63TNlNuzZw8sFgsEQYBarYYkSYiqFgUvsxfEbMfjvuhkEVyiXBAd1BDr9y/B8XN7YCc7JFHGO6+/isOHD+P48eNo1qwZOnbsCBcXFyXQy8nJweLFi9GjR4+7u4bQFRywMMYYu2eu6b74F/66ivPQoUNx+vRp9OzZU+mSEQQBP/zwAwoKCvD00w1x8KDjbUat+ia0iguGr6sn6tWuiwDfADTp0gIFJYXXDLatqPxhvnfvXjRo0AAA8NJLLymf6xKfguDiCkkC5CuDMAryHW02m81QySrsHrIMD4Q0uO41SkuBOjEahIe7XreM0WhUxtjIsgy9Xg+9Xo/mzZujT58+iK4WjS1PbUG3dt1Q8mcJjmXvQdzQOLwx/w2YTCbY7GV4csizqFWrFgDgjTfewIoVK3Du3Dn8/PPPqF69OkRRRGJiIk6dOoUHH3zwmu6qO40DFsYYY/8JN1rFuVmzZpAkCdWrV0f9+vVBRJjy3m9Iz5IBWcbp+r3hUasj8koLcfjoUYSGh8LFxQX9+/dXukgAIDAwEAAQEhICjUbjeIsRFYW0tDTluhMnTlTKf/n0oziflobfNrfFjp19USfKDyqV402Jl5cX1i78EW46E85LORAEARpZwvvdOmFa0mJoOz8BXOmOOXLYgsu5RdDr9YiNjcWbb76JuLg45Tr5+fm4fPkyAKCsrAw5OTnIz8/HzJkzlUHARpUBc59/DSF+waBiwp65e/D2s28jvzgfpoQQSLKEJUuWQK1W49lnn8W5c+dgs9lw6dIl/PHHH1CpVNBqtfjll1+Qk5ODb7/99g59k5XjgIUxxtg9I4kCbPbb95Zl5MiR+OSTT/DZZ5/hyJEjGDRoEAoLC/Hss8+iQYMGKCwsVMaauIx+C6Uljm4cVb2G+PHMn7DYLJBEEX06OsZoXLp0CZ1aP4iXhw1CeFgozp49C8DRPfLMM89AFEUlv8uYMWOQnJyMnj17AnAENRvWr8dLA57BnNmHkJWVjPOXMtGpVSDCQ8IQH9MARRl56PXdS7CTHaIowtfXF8UB4Vg2Zzbs61ag4RNPQFZJ+PiTJvho7nPo1KkT9Ho9vLy8cOLECQCOhHJ6vR7Lli2DJElo2bIlZFlGQEAAevTogc6dO8PPzw+0dhxWDqmFtNOn0DbaHbunD0R4UCAEEbCXlEESJTzyyCN49913kZaWhoCAAGg0GsycORNPPPEEysrK4OfnB7PZjMjISJw8efK2fW835bbl1r3HODU/Y4zdf3afzqacIsttPef1VnFOSkoiQRCoWrVqjjTzgkCiKFJAUBBBpSYIIomCSI8nPkaXko7Sz71fpkdb1CU3NzcSRZEkUSAXFxeKjY2lF198kUaPHk3R0dHXTY/fvn17ZT2eZo19qFMnA5kMLrRg2Pvk6+pYZFElytS2elPq0aMHqdUa0qh01L1z3+uec8iggSRJEoWFhZG/vz8JV9ogiiK98MILVKdOHTKZTCTLMiUkJNCLL75Ier2emjdvTkc/GkrVPN0oxMNMLmqBFj7RnKI8q1Fdv5qOtPwPtyMioq+//ppkWaaff/6Ztm/fTlu2bCEfHx9SqVSUmZlJ+fn55ObmRjNmzLgt3xevJcQYY6zKO5GRR2eyC+/a9cqDGQgCCW7u5D7nc6q7+SB5/7qbIKsoNqYuERFlfnqAlvcYRDU9RdJIIHedQL1iVLR8/wEicqzCHB4eTmPHjq30OriyppASPEkqahAVSykpKXRh5h66uOgghYeGkV6lJbWkovj4eNrw60aqE1yPpAprCj322GP0+2evUNKzNRx1UUnKYoYqlYpEUSRZlpV/y9cQatWqFcXFxSnrJ0mSRG5GI4mCQL4mAw19vA2Fh4WTJFxZKBECpazbTGvWrKHw8HAKCgoiPz8/UqvV5OLiQpIk0ahRo2jLli3Upk0b8vT0pMzM27MOFK8lxBhjrMpz1ahQUHrjrK23U/lA3PlffAmpsBDqs6dx5sQx5E9/Fy46HVavWYW8DWcwaNpLSC614PDSyfj842fwy9M6HG8/AM/s/xOJX3yHhx56CHa7HaNHj1bOXVBQgH379mHfvn0AgFOnTuGBBx5A8rqNSH1pHVaPS0J8g4YoSy+AqJVx8lQqjo1cg9SX1mH79u3IyLqAY+d+xyedNdiW/CueeeYZrFu3DpqD36B7wDkcHuKK4++1RV5eHi5fvoy+fftCrVZDEARMnjwZY8eOhSiK0Gg0OHbsGPbv34/s7Gw0adIEv//+O94fMwqiIOBCbj7Cwqvjl49nY+Fjk2HSGqBRadCiUxs888wzqFmzJqZNm4YtW7bg559/hkqlgiiKmDVrFrp16wYPDw+kpKTAy8vrrn1vALhLiDHG2L1TUFJGO05duifXnjlzJgX5BpAgq0iuUZs2bt5CZdnFdObV36hxUF3q1b0HERH5rN9Lbh98QiGRUQSVmgSjmXr16kXp6elO59uwYUOl3ThPt3+czryyiTI//p2seaV05pVNlLP6FBUdzKLik5ep5E/Hcys+Pp4GNvUgGmek/LQDZLVaydvsQpNaa+jsL1Ppj1mPUNbbUXTo0CEaN24cGY1G6tChA7333ntKF5ibmxu1b99eqVPz5s2pT58+RES0et5MeuPhVgSATDoNaSSZ/A3e1LveI/TZsB/JXmYjIqLFixdTWFgYqdVq8vX1pSFDhlBOTs4d+x5u9vnNmW4ZY4zdM3q1hCKL7e8L3kZkI1z43w4k5tZFYp9vkK0WoLcSwuMb4/x7OwEbYfXnP8LYIkg5Rh0bh5KPkuBz5ffPW9a95rwtWrSodP2d9LGOJQFKT+eByhyJ4vLXnwEAePStBW24GRaLBbt378bYx9UAVJCSuqPYasVDIRaszw7AmA4j8cf8g1DbCgGrY00hm82GOnXqYNSoUcpU6p49eypLEADAxo0blZ9L8vPhHVkTwHo826wRhtd9BwCgiXTDocZeEGRHp0u3bt3QrVu3f3Rv7yQOWBhjjN0zlaaSv9NEwJZrUX51tziun7XwIOx5Frg2C4ThwUDl8z+axaDW5gMovjKbaWnd8Ju+lCAIUFczwXIqF7ASLvxv59Vq6GWogwyOa2dlwWazwT0gDMAZ6Aods5F8XAQctTq6XkRXbxgoD9Hft8Qr0OBQdQk/f/khng06hfDw6lh3NBvfL/kONrsdSNsO6D0AvTugNQOiiGPbt2Dh5l0I8/aEn8mAA6btaNK0G4xNA4GTWf/oVt5NHLAwxhj7f0UQBKiDDLCccSQ+83ymNi4vP4nSP3IBAJowEwTpalZZvSTij2YxyLRYYQfBT6O+pet5PVcHllO5KDmRg/wNjjcrKl8XeD1XB6LeOZW+qnorIOOzSs8T+MgbSN9ZG2WX0mDNPYcpQwsxct461HjxOwgCEO4uo18dAQv2WYEF7a4eKMqA3Yple8y4kJuPt7rEoXXPRES27wuVXPmaRFURByyMMcbuqeutBnwneQ+p6/S738sNATi6cCqrjyAI8NGortl/MwRBgCbMDHWoSQlYvAbGQNRefQQrWXq9H7wasLx6Hhl/DIRvriOQkrUuCHiwp9O5lz/rWAH60qVL8Pf3x5jRoxFW8BMweBlQdMmxLX0WQ38pxpmL+dj9rAsKTHnITZmP7ZFdYb2yllGwu/4fte1u4llCjDHG2BV3MngSRAHG9iEAgOJDl5w+U7L0/rRY2WeXNFi3fj0SEhJueF6tVouAgABYrVYsXbYMXRMfBbxrAqEPgGp0xtCf8rDsOGF9bz2q9ZiGXHJBfGwdPBDhiRZR3mgR5Y0wr+un/a8q+A0LY4yxe+quj2G5h4wtg6Gr5QnZU3fNZyNHjkSfHk8i7mEt4l9YiOmDB6OwsBD9+vUDAPTu3RsBAQGYNGkSAGD79u1IT09H3bp1kZ6ejrfeeuuaqdZDhg7F14dF/PBSCxgC3HHBpyUyrd+hzBB03wUAt/SGZe7cuYiJiYHRaITRaERCQgJWrlypfJ6amorExER4eXnBaDSiW7duyiJU12Oz2fDGG2+gWrVq0Ol0CA8Px9tvv/3/6j8wY4z9fyYIAjYey1S25OMXsfFYJn47cRF70y7jZGYBMvNLUGq9u7OJ7hSVtx6CeO2bnO7du+P9zl54c5sadTv2wb59+7Bq1Sr4+DjmJqWlpeH8+fNK+ZKSErz++uuIjo5GYmIiAgICsHnzZpjNZqXM3LlzkVtYghbj18DvuST4hUbgsclrsXhz6h1v5+0m0C1EBj/99BMkSUJERASICJ999hnee+897N27F6GhoYiJiUFsbCzGjx8PwLHa47lz55CSkgJRrDw2evfddzFt2jR89tlnqFWrFnbt2oV+/fph4sSJePHFF2+6IXl5eTCZTMjNzYXRaLzp4xhjjFVNVpsdBaVW5JdYkVdShtziMpTZ6Jo/aCvONLpel44AQKeWoFNJcNHIcFFL0Kkl6NUypEqCh3uCCHjbE3hoMhA/4M5co7QAye90QPNuw4A6j9+Za9yim31+39Iboc6dOzv9PnHiRMydOxcpKSlIT0/Hn3/+ib179yoX/Oyzz+Dm5ob169ejTZs2lZ5z69at6Nq1Kzp16gQACA0NxTfffIMdO3bcStUYY4z9x8iSCLNeDbP+1mblVMZuJ5RYbSgstaHYYsOlQguKLltRZLHBZq98oG3FIOivg3ErBk3l+/VqCUatCkadDKNWBb1aurUxMblnAbsVyDzyD1t5E4qzHf/q3O7cNe6Qf9yFZbPZ8N1336GwsBAJCQlITU11jITWaJQyWq0Woihi8+bN1w1YmjRpgo8//hjHjx9HZGQkfv/9d2zevBnTpk274fVLS0tRWlqq/J6Xl/dPm8IYY+w/ThQF6NUy9Oo7M3KDiFBksSGvpAz5JVakXy5GocXmFOj8NQByqp8gwJifDrPdB+YDq2GwD4Okd3cEFuX/6twr/OwGSP9g1lLRlYBF7/6v2nsv3PI3d+DAASQkJKCkpASurq5YtmwZoqOj4eXlBRcXF7zyyit49913QUQYM2YMbDabU5/bX40ZMwZ5eXmoUaMGJEmCzWbDxIkT0aNHjxvWY9KkSUrXE2OMMXYvCYLg6GrSyPAz3frxdjshv0CLnNqP4PTlbOSm5sBuOQuUFgBlRY5rXCmrhDoqPaBxhUGrglmvgZurDkaDK2S92/UDnaIrCeLuwzcstzSGBQAsFgvS0tKQm5uLJUuWYP78+UhOTkZ0dDTWrFmDQYMG4dSpUxBFEU899RQOHz6M+Ph4zJ07t9LzJSUl4eWXX8Z7772HWrVqYd++fRg+fDimTZuGPn36XLcelb1hCQoK4jEsjDHG/ltsZUDxZcdWlH3lZ8e/9sJsFBTkI7egEDmFJcgtKoO1tBCw5APW0spPBwmtX/8J0BjuckMqd7NjWG45YPmrNm3aIDw8HPPmzVP2ZWVlQZZlmM1m+Pr6YtSoUXj55ZcrPT4oKAhjxozBkCFDlH3vvPMOvvzySxw9evSm68GDbhljjLEKykqcghsl2NEagVqJ97p2ijsy6LYydrvd6U0H4MjYBwDr169HZmYmunTpct3ji4qKrplBJEkS7Fey7zHGGGPsH1BpAZUfYPS71zW5LW4pYBk7diw6dOiA4OBg5Ofn4+uvv8bGjRuxevVqAMDChQtRs2ZNeHl5Ydu2bRg2bBhGjBiBqKgo5RytW7dGYmIihg4dCsAx82jixIkIDg5GrVq1sHfvXkybNg39+/e/jc1kjDHG2P3slgKWzMxM9O7dG+fPn4fJZEJMTAxWr16Ntm3bAgCOHTuGsWPHIjs7G6GhoXjttdcwYsQIp3OkpqYiK+vqqpCzZs3CG2+8gcGDByMzMxP+/v54/vnn8eabb96G5jHGGGPsv+Bfj2GpKngMC2OMMXb/udnnNy9+yBhjjLEqjwMWxhhjjFV5HLAwxhhjrMrjgIUxxhhjVR4HLIwxxhir8jhgYYwxxliVxwELY4wxxqo8DlgYY4wxVuVxwMIYY4yxKo8DFsYYY4xVeRywMMYYY6zK44CFMcYYY1UeByyMMcYYq/I4YGGMMcZYlccBC2OMMcaqPA5YGGOMMVblccDCGGOMsSqPAxbGGGOMVXkcsDDGGGOsyuOAhTHGGGNVHgcsjDHGGKvyOGBhjDHGWJXHAQtjjDHGqjwOWBhjjDFW5XHAwhhjjLEqjwMWxhhjjFV5HLAwxhhjrMrjgIUxxhhjVR4HLIwxxhir8jhgYYwxxliVxwELY4wxxqo8DlgYY4wxVuVxwMIYY4yxKo8DFsYYY4xVeRywMMYYY6zK44CFMcYYY1UeByyMMcYYq/I4YGGMMcZYlccBC2OMMcaqPA5YGGOMMVblccDCGGOMsSqPAxbGGGOMVXkcsDDGGGOsyuOAhTHGGGNVHgcsjDHGGKvyOGBhjDHGWJXHAQtjjDHGqjwOWBhjjDFW5XHAwhhjjLEq75YClrlz5yImJgZGoxFGoxEJCQlYuXKl8nlqaioSExPh5eUFo9GIbt26ISMj42/Pm56ejp49e8LDwwM6nQ516tTBrl27br01jDHGGPtPuqWAJTAwEJMnT8bu3buxa9cutGrVCl27dsWhQ4dQWFiIdu3aQRAErF+/Hlu2bIHFYkHnzp1ht9uve87Lly+jadOmUKlUWLlyJQ4fPoypU6fCzc3tXzeOMcYYY/8NAhHRvzmBu7s73nvvPQQFBaFDhw64fPkyjEYjACA3Nxdubm5Ys2YN2rRpU+nxY8aMwZYtW/Dbb7/9m2ogLy8PJpMJubm5yvUZY4wxVrXd7PP7H49hsdlsSEpKQmFhIRISElBaWgpBEKDRaJQyWq0Woihi8+bN1z3Pjz/+iLi4ODzxxBPw9vZGvXr18Mknn/zt9UtLS5GXl+e0McYYY+y/6ZYDlgMHDsDV1RUajQYDBw7EsmXLEB0djcaNG8PFxQWvvPIKioqKUFhYiJdeegk2mw3nz5+/7vn++OMPzJ07FxEREVi9ejUGDRqEF198EZ999tkN6zFp0iSYTCZlCwoKutWmMMYYY+w+cctdQhaLBWlpacjNzcWSJUswf/58JCcnIzo6GmvWrMGgQYNw6tQpiKKIp556CocPH0Z8fDzmzp1b6fnUajXi4uKwdetWZd+LL76InTt3Ytu2bdetR2lpKUpLS5Xf8/LyEBQUxF1CjDHG2H3kZruE5Fs9sVqtRvXq1QEADRo0wM6dOzFjxgzMmzcP7dq1Q2pqKrKysiDLMsxmM3x9fREWFnbd8/n5+SE6OtppX82aNbF06dIb1kOj0Th1PzHGGGPsv+uWA5a/stvtTm86AMDT0xMAsH79emRmZqJLly7XPb5p06Y4duyY077jx48jJCTk31aNMcYYY/8RtxSwjB07Fh06dEBwcDDy8/Px9ddfY+PGjVi9ejUAYOHChahZsya8vLywbds2DBs2DCNGjEBUVJRyjtatWyMxMRFDhw4FAIwYMQJNmjTBu+++i27dumHHjh34+OOP8fHHH9/GZjLGGGPsfnZLAUtmZiZ69+6N8+fPw2QyISYmBqtXr0bbtm0BAMeOHcPYsWORnZ2N0NBQvPbaaxgxYoTTOcq7jMo1bNgQy5Ytw9ixYzFhwgRUq1YN06dPR48ePW5D8xhjjDH2X/Cv87BUFZyHhTHGGLv/3PE8LIwxxhhjdwsHLIwxxhir8jhgYYwxxliVxwELY4wxxqo8DlgYY4wxVuVxwMIYY4yxKo8DFsYYY4xVeRywMMYYY6zK44CFMcYYY1UeByyMMcYYq/I4YGGMMcZYlccBC2OMMcaqPA5YGGOMMVblccDCGGOMsSqPAxbGGGOMVXkcsDDGGGOsyuOAhTHGGGNVHgcsjDHGGKvyOGBhjDHGWJXHAQtjjDHGqjwOWBhjjDFW5XHAwhhjjLEqjwMWxhhjjFV5HLAwxhhjrMrjgIUxxhhjVR4HLIwxxhir8jhgYYwxxliVxwELY4wxxqo8DlgYY4wxVuVxwMIYY4yxKo8DFsYYY4xVeRywMMYYY6zK44CFMcYYY1UeByyMMcYYq/I4YGGMMcZYlccBC2OMMcaqPA5YGGOMMVblccDCGGOMsSqPAxbGGGOMVXkcsDDGGGOsyuOAhTHGGGNVHgcsjDHGGKvyOGBhjDHGWJXHAQtjjDHGqjwOWBhjjDFW5XHAwhhjjLEqjwMWxhhjjFV5HLAwxhhjrMrjgIUxxhhjVd4tBSxz585FTEwMjEYjjEYjEhISsHLlSuXz1NRUJCYmwsvLC0ajEd26dUNGRsZNn3/y5MkQBAHDhw+/lWoxxhhj7D/ulgKWwMBATJ48Gbt378auXbvQqlUrdO3aFYcOHUJhYSHatWsHQRCwfv16bNmyBRaLBZ07d4bdbv/bc+/cuRPz5s1DTEzMP24MY4wxxv6bBCKif3MCd3d3vPfeewgKCkKHDh1w+fJlGI1GAEBubi7c3NywZs0atGnT5rrnKCgoQP369fHhhx/inXfeQd26dTF9+vRbqkdeXh5MJhNyc3OV6zPGGGOsarvZ5/c/HsNis9mQlJSEwsJCJCQkoLS0FIIgQKPRKGW0Wi1EUcTmzZtveK4hQ4agU6dONwxq/qq0tBR5eXlOG2OMMcb+m245YDlw4ABcXV2h0WgwcOBALFu2DNHR0WjcuDFcXFzwyiuvoKioCIWFhXjppZdgs9lw/vz5654vKSkJe/bswaRJk26pHpMmTYLJZFK2oKCgW20KY4wxxu4TtxywREVFYd++fdi+fTsGDRqEPn364PDhw/Dy8sJ3332Hn376Ca6urjCZTMjJyUH9+vUhipVf5syZMxg2bBi++uoraLXaW6rH2LFjkZubq2xnzpy51aYwxhhj7D7xr8ewtGnTBuHh4Zg3b56yLysrC7Isw2w2w9fXF6NGjcLLL798zbHLly9HYmIiJElS9tlsNgiCAFEUUVpa6vTZjfAYFsYYY+z+c7PPb/nfXshut6O0tNRpn6enJwBg/fr1yMzMRJcuXSo9tnXr1jhw4IDTvn79+qFGjRp45ZVXbjpYYYwxxth/2y0FLGPHjkWHDh0QHByM/Px8fP3119i4cSNWr14NAFi4cCFq1qwJLy8vbNu2DcOGDcOIESMQFRWlnKN169ZITEzE0KFDYTAYULt2badruLi4wMPD45r9jDHGGPv/65YClszMTPTu3Rvnz5+HyWRCTEwMVq9ejbZt2wIAjh07hrFjxyI7OxuhoaF47bXXMGLECKdzpKamIisr6/a1gDHGGGP/ef96DEtVwWNYGGOMsfvPHc/DwhhjjDF2t3DAwhhjjLEqjwMWxhhjjFV5HLAwxhhjrMrjgIUxxhhjVR4HLIwxxhir8jhgYYwxxliVxwELY4wxxqo8DlgYY4wxVuVxwMIYY4yxKo8DFsYYY4xVeRywMMYYY6zK44DlPjZnzhyEhoZCq9WiUaNG2LFjx3XLlpWVYcKECQgPD4dWq0VsbCxWrVrlVGbTpk3o3Lkz/P39IQgCli9ffodbwBhjjN0cDljuU4sXL8bIkSMxbtw47NmzB7GxsWjfvj0yMzMrLd+xY0dMmDABaWlpiIqKwkMPPYTExETs3btXKVNYWIjY2FjMmTMHADBkyBDodDoEBQVhxIgRKCkpcTpneno6evbsCQ8PD+h0OtSpUwe7du26c41mjDH2/xYHLPepadOmYcCAAejXrx+io6Px0UcfQa/XY8GCBdeUXbx4MX799Vc8+eST+P3339GoUSN8/PHHaN26NaZOnaqU69ChA9555x0UFxcDAPLz82G32+Hi4oIvvvgCr776qlL28uXLaNq0KVQqFX766ScMHDgQly5dQtOmTfntDWOMsduOA5b7kMViwe7du9GmTRsAjq6hsLAwXLhwAVOmTLmma2jatGnQaDRo2bIlIiIiEBAQgPz8fPzyyy/49ttvrwkuPvjgAwCAzWaDxWJBcHAwCgoKsHnzZqXMlClTEBQUhIULF+KHH37At99+i/nz5+PIkSMYOHDg3769YYwxxm6FQER0rytxO+Tl5cFkMiE3NxdGo/FeV+eOOnfuHAICArB161akpaWhd+/e+Oijj/Dbb7/h559/RllZGY4dOwZvb29YLBbo9XqEhoYiLS0NdrsdoigiNDQUqampEEURsixj69atqFevHgDA19cXGRkZcHV1RUFBAQICAnD+/Hm0adMGq1evBgB4e3tDFEVcunQJVqsVWq0Wr776Kt544w0AwGOPPQadTocvv/zymvoLgoBly5bhkUceuWv3jDHGWNV0s89vfsNyxa0MYAWA6dOnIyoq6rpjPPLz8zF8+HCEhIRAp9OhSZMm2Llz522vd8WuIU9PT1SrVs2paygrKws2mw2nT59GrVq1YLPZUFZWhpMnT8Ld3R2yLKNjx45K15DFYlHGwRQVFQFwjFUhIpSWlirXzcrKwqVLl9C3b1+4urrCw8MDb775Jj7++GMAgE6nc3oj80/dr98LY4yx24z+I3JzcwkA5ebm3vKxSUlJpFaracGCBXTo0CEaMGAAmc1mysjIqLT8V199RRqNhr766is6deoUrV69mvz8/GjEiBFKmW7dulF0dDQlJyfTiRMnaNy4cWQ0Guns2bP/uI3lSktLSZIk+vbbb0mSJFq2bBkREfXu3Zu6dOmi/EtElJ6eTgDoscceo9mzZ5MgCCSKIomiSHq9nqKjo6lHjx4UEhLiVB4ANWzYkACQJEkEgNRqtVIHlUpF1apVozp16pAsyyQIAgGgoKAgWrNmDel0OqfyFQFQ6lyZ2bNnU0hICKlUKhIEgV5//XU6dOgQNWnShERRJLVaTfHx8bR9+3ayWCw0fvx4CgsLU8qPHj2aTp06Rc8//zxJkkSiKJJWqyUXFxcCQIGBgZScnEx79+6lRo0akSAIpNFoKCEhgXbs2PGvvx/GGGM372af3xywEFF8fDwNGTJE+d1ms5G/vz9NmjRJ2Vf+ENVoNOTt7U1xcXFO52jVqhVpNBrSaDTUoEEDEgSBfH19SaPRUExMDK1cuZLq169Pr732GlksFnr44YdJrVYTABJFkWrUqEG//PKLcr4PP/yQ6tSpQwaDgQwGAzVu3Njp8/j4eOrXrx8BoK3ff0K2I79QgI8nTXrpGXr52W5ULawaxb/yOb33014CQC3bdSS1Wk31GjSk0GphpNc7Ht6du3Z1Ci4qBixubm4EgObOnUsmk4kA0K5du4iIKDg4mNq2bUsrVqyglJQUSkhIUI4LCQmhwYMHk1arrfR+3yhgqRg81qlTh6Kjo8lsNtO8efNIpVKR2Wym4cOHK0Hl0KFDyd/fn1asWEE9e/akyMhI0mq1NHHiRNJoNNShQweKiIigp556isxmMwGg1157jYiuBpWRkZE0aNCg2xpUMsYYuzkcsNyk8rcVFR+gs2fPJhcXFxJFkeLj4+nV0W+SWq2mqRNn0doftlDjhg8QAFo45xs6ue88tWzWRgk8qodHUFBgIAGg0UOH0tEtW2jYgAEkiiLJskwAqMtDD5G72UxvjBpFqxYvptdHjSJZkkiWZdq7cSNZLlyg7z//nH748is6tHUbHdyylV4ZNoxUKhX9fuUNQFJSEmk0GgJAXy+YR8899xyZzWa6cOECvfzyy6QzmKha43b0+NBXCADJKjX5V4ugDn0HkVdgsBJcqHU6ev7ph0mrUVP+wTWUsu5n5bNmzZoRABo+fDiJokgA6OmnnyYioqeeeooeeOABInIEeJ06dSI/Pz+SJIk++eQTGj16NEVHR1d6z28UsJQHj+Xfy9KlS8nf358CAwNpyJAh1Lt3b6pTpw65u7sr9fT19aXt27fTV199RSaTiVq0aEGRkZGUkJBAUVFR1LJlSyX4AkBms5mWL19OkiTRzz//TCEhIaTT6ZQ3SQBo9uzZt/T/iDHG2D/DActNKn+jsHXrViK6+hf+Qw89RHXq1KHuj/YiURAo0ieYvA1upJJkivAJIo2sIlEQSLjygPNyNdO83mNpYItHlYeeJIDUAihQI5FJEpT9Jlmkh730VMNFRa6SQK6SQCZZJAmgKZEedLp5aKWbSRbpfzW9yXZwBdGJtfTBq4McwYgsU3x8PKWkpBCRo2vIzd2dXGq3poDBnynXNZjMpFKpSaXWkCCIJKj1pKveiGpGR5OnpydtWPOLUrbiplarlC6fkAAfouNracd3M0mWJXqrz6P0WOPG5OHmRiqVimRZpn379lF4eDiNHTu20nt+vYClYvBY8Xvp2bOnckznzp2VNtetW5cEQSBJkshkMlFGRgbNmDFDqSsAioyMJFdXVzKbzeTr66vsV6lUBIDGjBmjvE167rnnKDQ0lACQp6cnFRQU3Np/QsYYY7fsZp/f8j8e/PIfVT6IVa/XIzs7G2OHTcDi77/AyYtnMXPaHMQ3bIRxE17DidVnYPYKgbUkD4UFObCpJaR6iHh52BzMa7AMAKDTalFQXIx0ix1EBK1ajRKLBVaVBgEPdkDfRo0QHhgIm82KLqNGIffiRYT0GQn3Bx5wVObKBC6bzYav53yIIttpNGr3FMRaHQEAwye2wTe/7kZ8fDxmzZoFALDb7Vi3bh1Gv/wy9rk3x7YTGYAgAmSHRiWjGHaY/IJg0xhRkJkJN+Tj1B9/ICIiAk2at8a4ceNw4MABfP/998o9ITtBAABBwPmLl9H77c8REBCAZcuW4+lHE5FfZgUAaNUqjB/eFyMH9oW9tBCjH4sHTvwKACgoLMbJ0+mA1gAAOPXHH9i3bx/c3d0RHBwM4OoAYR8fH6fvxGBwHOPj44OdO3dClmU8//zz0Ov1SEtLQ15eHqxWK1577TUsWbIEoijCZrNBkiQcP35cOc/AgQPx0UcfwWAwID8/HwAwe/Zs1KxZEydPnsTChQtRVlam1GX37t1o1qzZv/9PxRhj7F/7fx+weHp6QpIkLFy4EE8++STS0tJw+fJlREREwNfXF7l5OQAAb28fDBk2EACQkXUJEATkZJ0ByA4AeOih9pj10TS88sILgCCAyA4bAFdXV4iiiLy8PJRYLACA+nFx+O3oETzcry+adu+OkpIS2O2O8xT4+MD1ykPywIEDSEhIQElJCfREmN+5Cx6cNs2p/iNHjkSfPn0QFxeH+Ph4TJ8+HYWFhejXrx98fHzQq1dvLHYxoqwgB/JDr8BTEOFuS8Wpn7+EwaBB7oVT8PPzw6ZNm6BWqwEAUVFRiI+Px+7dux2ziqxWSJKE6CsP9rS0NAiCgFWrVkFrBwZ6euHrnMs4bynDmPc/xcMPP4zNS1fA7O+v1HPXxo1o+cigq/UeNQoA0CexLRZNGe3YmZnl+PfMTniaciBJIjL+PKYcU1ZWhgsXLgAA2rRpg61btyIkJARZWVk4c+YM5s+fDxcXFxARZFmGyWTC5cuXYbfb0adPH6xYsQIAUK9ePezatQtGoxGyLOPIkSMAgDp16kCr1Sqzhtzd3f/JfynGGGN3wP/7ac1qtRqhoaH49NNPMWzYMABAjRo1sHLlStSpUwdWq+Mv7osXM5WptSdPHAcIUKs10IbUBQB8800SbDYbVq34GXQliCkuLkZBQQG0Wi30er1yzWrVquHs2bPo3LkzioqKIEkSvL29AQBeXl5KuaioKGz76issrh6BnjWjMWrrFhw5etSp/t27d8f777+PN998E3Xr1sW+ffuwatUq5S3FmTNpiI+tBQCofmkhXm0i49wvX6M4Lw/5GRdhNOhRv359TJkyRXm78Pvvv2PHjh2w2WzKdWw2G2w2G8LCwrBx40a4uLjgyy+/xPv+/njYZMLXIaHYEF4djf394efnB/8KwQoAtGjRAuTognTaFn2/BohoA0S0gWfDRyFJEjLUwVBHd0CD+g2wbu0q5Kc73pIc37RcOZ+PlycyMjLgHxgIfXA1QBCu3PMSBPgEQxJltGzQArWjIgEAy5ctQ78eTwMAfvvtNxQVFeHChQu4cOECVCoV/ve//2H//v0IDQ0FAIiiiISEBHh7e+ORRx7BsWNXAyfGGGN33//bgKVifo+zZ88CcDykAEdis3IbNq9R9nl7e2P37t3Iy8sBQBBFAb9+5cjcSmSHxWJBjxeeVY71dPFC9yYP49KlS0pOEwAIDAzEN998g6VLl0Kn08FqtSIzMxNqtVp5CwA4ginD4m9Rv04dzN65A7GxsZgxY8Y1bRk6dChOnz6N0tJSbN++HY0aNVI+27hxIzZv3gw/P1fs3ngEo14cDl/fEsyY6QezWULfvg8hKysL58+fhyw7Xrh5eXnB09MTsizD3d0dvXr1wp9//gmLxYKuXbsCAObOnYvc3Fz0OZOG5qknlS1bq3XK13Ir1Go1GjRogHXr1gFwvIX5+KtlWPHbHvj4+OC9L67eG/vZ3fjm66+x+pdfcGzLJgCApNfBbrfhzPk/oRIEnP/jBC6cOQWVJCA3Lw8TJk+58l05utokSYLdbkdZWRmaN2+OqVOnYsmSJY7z2+0IDw/HuHHjUFZWhnbt2qGwsPAftYsxxthtcIfH0tw1tzLotuLU2b1795IgCKRWq8nf358AUEREBHXs2JG6dOlCNSNqKwM1V6xYQQcPH1V+L8/vIUoyAQKptC5kMrhRoEeE06BVQRCcBoKWDzgtLS2lEydOUEpKilKua9euSj3LsrPpcI2adHnJUiIiatmyJfXp00f5vOJU6/K8JNfz+efzSZJEMpvVpFKBzGYDubjo6Pz5dCIi6tWrFzVv3pzq1q1LarWaNBoN+fv704ABA2j58uXUqlUrqlatGl2+fFk555gxYyg5OZmOJifTLy1b0cgePUgQBFqzZs3Nf3GVfDcajYYWLVpEhw8fpqZNmyoDayvewxq1Hd+LSqMhwWwmCOI1g4UFQaBmjRKoRWQL0qr0VwdDV5gN5OVuIhedlhrH1iRXvU6ZDSXLMr366qukUqlo06ZNBICSk5P/cbsYY4xVjmcJ3UDFvCvls1E8PT1p0qRJFB8fT82aNSOtVnvNA3DRokW0+redJKh0joedlxeVlJSQyex+7cMSjofrE/UfU/KtlD9wXVxcyM/Pj6ZOnUrffPMNhYeHK8d17NiRiBzBwM9vvUVrw8Jp94YNNGbMGKdg4FaT3Y0ePZpMJhN5eXmRSqWi0NBQUqvVtGfPHiIiat68Ofn7+9PChQtp0KBB1LlzZ6Xeer2eevbsSenp6U7n7N+/P4WEhJBarSYvLy9q3br1vwpWys2aNYuCg4OVBHHls59mzZp1NWiRJNI82MoRqPwlWKnuF0tNGzShvoldKMjko3wXf910Op2STK58CwkJuTIzypGXxs3Njd59910CQAcOHPjXbWOMMeaMA5brqDh1dvbs2RR4JWeKyWSi8PBwMhgMV6cfX0mWdru28sRl3bp1U/6SL9+io6MpNjZWeYPSr18/CtDpSC2KlQYDN5PsriI/P79rcos8+uij1KNHj2vK5ufn06xZs+ill14iADRw4EAqKSm52a/ijkpKSiKIVzLvPtDK8cZElkmrdyX1g60JAGnVGvIwm+n9bp3oh55zKdgjggRBpCY1OpFO7UqCIFBAQAA9/vjj5OPjo+TH+d+kCbRmzRolGJ0wYQKpVCpq1qwZNW3a9F43nTHG/pM4YLmO8jcqEyZMILVaTR9//DGJokienp5KN8/1Ag5BEJwCmko3Ubrx53/Zxg8bRr0eeoi0Gg0JgkDL3n2XclevpgtT/keHo2pQwbaUa9pQWbI7InJKyf9X7u7uNH/+fKd9FVPy/1VZWRlt3bqVANywq+leePa1153uoejrT+5zPid99z6OpQcEkF6tol3fLaMF3T4gocIbGEkQya3Cd1ixm6myLSAggEJCQujMmTP3utmMMfafdLPP7/+3g26TkpIwYMAADBgwAHFxccjNzQUAZXpxxYG3Zr0rBEEAESn5O67LboOgcblhkQceeACPP/44AODtGTOwYu1aqMvK8KBOj6jPPkf6i8OQvWABJDc36BvGXXP89fKV+Pj4KNN+/6p9+/aYNm0aTpw4AbvdjrVr1+L777/H+fPnKy0viiImTpyIpk2bIj4+/sZtvsvGD3ZMj05OToYkSXhv6jS0a9oEvmoZQQH+IAgI8PfD/7V339FVFukDx7+3p9/0BFIIoSQgJpAAIYDU0JS+uyLigrHCkl0k+hOCisqugrKLICKgCKIsgghYYCH0AFKEIEoHKdJSKWmk3ju/P2KuRlqCCSHwfM6555A3753M3NnX++zMMzPGevVJPLwBO4MDCQOncl9dHyzKyqWcHDydHPhT3z4YDAb69+9Pw4YN2bx5M51a3Ye/vz8bN24kIiKClJQUPvjgA/z9/Wu41UIIcW+75wIWT09PtFothw8fJiYmBoB//OMftiW9ZXQ6ne3feSVX0Oq06HQ6lixagu43wYzZ1R2tVmtbYQSgCn9dTRLoWQeNRoOjo6NtE7Jhw4aRn59Pu7Zt+TEklGNz5xHRrh31+vWl0fZtNN6xnQbr1lH/y+VoflOPG5kxYwazZ89m165d1zzVeNq0aTRq1IjQ0FAMBgODBw/GYDBQVFREeHg4q1evLnd/p06dWLNmDT/88AMuLi5ER0ezatWqCtWlupXtnXPx4kUiIyM5uX0rn4U3oL2mmPAWEbi4uJBxOZuW7VtzNOskr/d9i7oewcS2b0l9TzfC/OswplcnPHx88fX1ZeXKlZw8eZIB/fsRENSAHTt28MUXX5CamkpUVBRLly6t6SYLIcQ9754LWIxGI2FhYVitVtsIRXR0NFB+VGXGjBm2oKW4yIpFWTA5m3h48MNYflkWC5CTnYW9vb1tZOb3TmemoJQiLy+PzZs3o9VqmTFjBsnJybw9aRJHi4qY8MUSkrZu5a+xsejd3NC5umL098PwuxGUMmVf2GlpaQAsXryY+Ph4mjVrRqdOnQgPD6dHjx6kp6fb3uPl5cWXX35JXl4ezz77LCaTiW7dutGwYUOGDx/OgAED+P7774HSZdIHDx5k1qxZ7Nmzh927d9OlSxf69evHgQMHbvWjrzK/Xf4cHx/Phx9+yLx580hMTCQtLQ2NRsPhw4cpLCykSWQzfvpxARqtI6Cjd3gTWvr5kG4w89XXX6PRaPD39yczM5PMHZ/zyaLlvPHGGyxYsICFCxei1Wq5fPkyqamp5Ofn13TThRDi3nVbJqhug8qsEnr//fcVoF5++WV18OBB1a9fP1viK7/kLgwcONB2YJ6T+695KW5uOuVoX/E8FZ1Wq8xmsy1XolmzZsrR0VHVrVtXGY1G5WFnp9rVqVPp1TWtW7dWcXFxtn//7W9/U35+fmrixInXTMA9e+mKGvj+t6rVv9YqZ3cvNW3atHLn/ZQl4I4cOVLVrVtXHT169Kq/6ebmdlUeTE357fLnl156STk5OSlAtWjRQu3YsUP99a9/VWPHjlUdO3ZUf7m/ufq4UbgaE9ZB/V9IiPL+zSnZgwYNKl39dOlnNfaJ/iopKem6fTlv3ryabrYQQtx1JOn2BgoLC22Jtkaj0RaoeHl52QILOzs75eLiogBlMGl+SdBEubhoVZ06ehVc1+Oae39U5FV24rFSSqX9Z4o62rlzpdtb9oU9Z84cpdPpVPfu3W2nNSulVHBwsGrYsKFSSqnvT19Soc+8qxo+Ol7VfXaO0hgdlHdAcLl9VYYMGaKcnZ2V2WxWmzZtUikpKbZXTk6O+uyzz5TRaFQHDhyodF2ry/WWPytVuky7bMVVzuYtan5AoAo2mpRRo1FOJpOKior6dZn2xZNKndxSbcu0hRBCXJ8ELDfx2xGKkydP2oKJqKiochuLAUqrQWm1qH79nFVMjJPS6VCGsns0GuXetqfyDI/+9T16o3Jz8lEvDHhfGQy/nnRctgJp6dKlvwYES5eqgyGh6sqPP1a6zdOnT7dtdtekSZNyX9j+/v7K09NT/eOzParemBXKZ/BE5RPYQGn0BoVOrzQmB7VlyxZlsVjUmjVrlL29/XUDLO0vo0QrV66sdB3vFGdHj1YHQ0LVwZBQNen//k9t37699BeXzyh1qPa2Swghajs5rfkmfntoYPPmzW3XH330UWJiYpg4caItL8WqwMWs43//K8DOABYLWCg9Z8fo5MLF5E1QWGArQxsYRDfvdsxc9QLFxcXY29uTn59vK+9Pf/qT7d53hw4lBig6dQr7+++vVBvi4uIYOHAgfn5+fPTRR+W25B88eDBJSUkcz8gFwC7wfgicRiAQ6FDC5cTpdOzYEY1GQ4MGDYiNjWXu3Lnl8jSKioo4ffo0WVlZfPHFFwwbNoykpCSaNm1aqXrWtILDh8n+X2nCcIHJhN7bm/DwcDjzHVhLIPTBGq6hEEKIm7lnA5ZBgwaRkZHB+PHjyy0FnjBhAtnZ2Wi1WqxWK35+eob0cGLyvCyUKg1SDHoNxSWlibdFOVlo9AbMTZpx+dB+AKwnjvL5iaO2Mn+frDlv3jwef/xxslet4tzoeDyefRZznz631I7fJ+CWSUtLw9fXl8+ejeaFJT8Q4O5A8qlLvDnwfhr7OMP4fhQUFHDhwgXq1q3L2LFjCQ4OLleG0WikYcOGAERGRrJr1y6mTZvG7Nmzb6muNcUYEGD7tzYiguce64Xu5Fqo2xxcA2uuYkIIISrsnlsl9FtlhwaePHkSKF3KrH5ZAeTm5obRaERv78YjvZxwNtsTUM+JVauDWZVYn8cec6VsJbMqKebyof0YDAZM7TvjP3U9h9pEc7RzZ+Y0Kx01iTab0QGbW7ai3SefcKxLF86NjsepY0e8nht1y234/YGBULqXzPr164mOjsbBqOf9IZEk9GrCFyPa4p9WwIXPDpM+Yy/Ww9n4+flRUlLC0qVLbQcbXo/Var3lgw1rktbRkcbf7cT31fE0HdYOncEOmvaVYEUIIWqRe3aE5VpGjRrFF198QW5uLvXr16dRo0Zs3v0je9L9CQxMoq7vr/e2atKSpcYNGE1w5YoVJ72ZPGsRusD6aAosuP3lYTQ6Dc5HjsD+fVg8POgaGEiTJ2KxFhWBUqDA7ZFB5ZZT34rfTm+1bt2aqVOnkpeXR2xsLABDhw7Fz8+PiRMncumLo+w5tZ/UnAya7mtEbgsTb38+HavVyosvvmgrMyEhgV69ehEYGEhOTg4LFy5k06ZNJCYm/qG61hSdiwtuPdpASQF4NKjp6gghhKgkCVj4dVrlgQce4D//+Y/t+rBhw3Bx82L/pa58v2cFSUmNAMgtdmDWwu10eqgZz/+tNEek8Zq5LD+wjheWTIagAfi88RwADwNRY8YQHBzMsmXL8LzJKMat+P30VvPmzVm9erVtn5nTp0/bNrZTRVYKSoqYvGUOpy+n4GC0p/ef+/Lpp5/i6upqKzM9PZ2hQ4eSkpKC2WwmLCyMxMREunXrVuX1v20uHofgLjVdCyGEELdAAhbKT6v0798f+HVaJaz7IAD0Oi3FFj0GXQkG95e5UjAcF/3PgAeN799AlosB7cENKMBgUeXKnzdvHt7e3jz00EPV1oa4uDji4uKu+btNmzbZ/m3uHUzn4+5sCGxeekGnwf+N9le956OPPqqGWtYwSwlo7+lZUCGEqLXkv96/KNsxdf78+Rw6dIgRI0aQl5dHq+4DgdJplTmfNiSnyJnGfs0Z+ug/+PqbApYnelCSayXl0gGmHvwvER1i0Ol/jQOtVivz5s1j2LBh6PU1Hx86t/fDfXAoWmdj6YXfBVd3pbO74Wgi2JlruiZCCCFuUc1/g94hrjetsvmymRxN6bRKUFAQ/XuuBGD8+FfQ6bR8+umnfPRuU7y8vOjTpw9N+zzD9G/P28pdt24dp0+f5oknnqippl1Fa9ThM6oF2etOYwx0runqVK/MY2C1QOMeNV0TIYQQf4BGKXVX/F/s7OxszGYzWVlZuLi4VFm5Dcf9j7bs5ZM3x1Xo/o+2nmTKmiMcmNCzyuogbtH570ungQJa1XRNhBBCXEdFv79lSugm7vOr3DSC1arQav/Yqh9RBS6dKh1ZkWBFCCHuCjIldBPtG3qw7xwk/3wRy7UPZAZAKUWJVXE0LQftH1ymLKpAUV7p0nEhhBB3BQlYbsLJZADgTzO3V/g9IT7XzwuZMWMGkydPJjU1lfDwcKZPn07r1q2veW9xcTETJ05k/vz5nDt3jpCQEN566y169rz2dNOkSZNISEhg1KhRTJ06tcL1vSv53AdH15QGLRJACiFErScBy0089UB9HrRvRmFQB7QazVXffb/90aDTYmfQYbY3XLOsxYsXEx8fz6xZs4iKimLq1Kn06NGDI0eO4O3tfdX9L7/8MgsWLODDDz8kNDSUxMREBgwYwLZt22jRokW5e3ft2sXs2bMJCwv7o02+e3g2Kk269Wpc/nr+JbAUg9PVn7kQQog7U6VyWGbOnElYWBguLi64uLgQHR3NqlWrbL8/fvw4AwYMwMvLCxcXFx5++OGrzrj5vYkTJ9KqVSucnZ3x9vamf//+HDly5NZaUw0MOi31PBxo7ONMQ28nGniVfwX/5hXg7oCXswmj/tof65QpU3j66aeJjY2ladOmzJo1CwcHB+bOnXvN+z/99FPGjRvHgw8+SHBwMCNGjODBBx8st7kdQG5uLkOGDOHDDz/Ezc2tyj+DWsstCC4c+/VnqwWOb4CUHyHjMGT+VGNVE0IIUTmVClj8/f2ZNGkSycnJ7N69my5dutCvXz8OHDhAXl4e3bt3R6PRsGHDBr799luKioro06eP7ZTia0lKSmLkyJHs2LGDtWvXUlxcTPfu3cnLy/vDjbuTFBUVkZycTExMjO2aVqslJiaG7duvPd1UWFiInZ1duWv29vZs3bq13LWRI0fy0EMPlStbUDoV5NkYjq2FY+vgZBL4RUJwR6jfATIO1XQNhRBCVJT6g9zc3NScOXNUYmKi0mq1Kisry/a7y5cvK41Go9auXVvh8tLT0xWgkpKSKlWPrKwsBZT7+1XmWMXrX+a9995T9erVU3q9XhmNRmUwGBSg5syZU+6+//u//1MtW7ZUr7/+uqpfv77S6XS2+53MZhUYGKiOHj2qLBaLWrNmjbK3t1dGo1EppdTEiRMVoDw8PFR+fr5SSqmOHTuqUaNG/eEm3xOyU5X6eUdN10IIIe5pFf3+vuVlzRaLhUWLFpGXl0d0dDSFhYVoNBpMJpPtHjs7O7Ra7VUjAjeSlZUFgLu7+w3vKywsJDs7u9zrTlGWq9KrVy80Gg1t2rSxfS6jR48mPT293P3nzp1j9uzZRERE4OnpyVNPPYVFo8HS9UHOnj1LSEgIRqORuLg4YmNj0Wq17Nq1i/fffx+9Xk/Pnj2vGokRFeDsA4V3zv9uhBBCXF+lA5Z9+/bh5OSEyWRi+PDhLF++nKZNm9KmTRscHR0ZM2YMV65cIS8vjxdeeAGLxUJKSkqFyrZarTz33HO0a9eOZs2a3fDeiRMnYjabba+AgIDKNqXalOWq7Nmzh2eeeYaNGzfaNsMxGAzlclbS0tK4ePEi48aNY9u2bbzyyivMmDGD4I5dUNlZRPZ8kEGDBvHzzz9z+PBhnJycCAoKYsiQITz55JOUlJSwcOFC9Ho9er2epKQk3n33XfR6PRaLpaY+gtoh+zw4etV0LYQQQlREZYduCgsL1bFjx9Tu3bvV2LFjlaenpzpw4IBSSqnExEQVHBysNBqN0ul06rHHHlMRERFq+PDhFSp7+PDhql69eurMmTM3vbegoEBlZWXZXmfOnLmtU0JlUz4mk0m1bt1a7dy503YNUA0bNlQ6nU4tX75cFRUVqfDwcKXVapVGo1EuLi7qm2++Ua+99prS6XQKUK6urkqr1SqTyaScnZ2VnaubwslZGby8lUarVYBasmSJatCggWrWrJl67rnnVHZ2tmrZsqV67LHH1L59+9S+ffvK/SxuoKRYqR8+V8pqremaCCHEPa2iU0J/OIela9eu6plnnil3LSMjQ126dEkppZSPj496++23b1rOyJEjlb+/vzpx4sQt1eN25rAsWrRIGY1GNXfuXHXgwAH19NNPKwcHB2U0GtWUKVMUoLp3764AtWLFCvXiiy8qR0dHVadOHaXVapWnp6fS6XTKzs5OOTo6qu7duys3NzcFKGdn59LcFG1pIINGq/glqAm57z7l5eWlmjRpct2cFclhqaDDq5Qqyq/pWgghxD2v2nNYylitVgoLC8td8/T0xNXVlQ0bNpCenk7fvn1vNMJDXFwcy5cvZ8OGDdSvX/+PVqnaXWt5cnFxMREREQwaNAiAv/3tbwCsWLGCTz/9lOjoaAICAujcuTPZ2dlYLBZ0Oh3r169nwYIFdOjQAYCcnBwSEhJAla6ssre3g1+mdi7o9CilWLRokeSs3Ir8S3BuD5zZBc6+YJDPUAghaotKBSwJCQls3ryZU6dOsW/fPhISEti0aRNDhgwBYN68eezYsYPjx4+zYMEC/vKXvzB69GhCQkJsZXTt2pX33nvP9vPIkSNZsGABCxcuxNnZmdTUVFJTU8nPz6+iJlatay1PLikpoaSkBIvFgqenJzqdjqKiIjQaDcnJyRQWFpKXl4evry9+fn707NkTo9GIUWugfrIJQ3Iucx99i4FtH6Kupy/nvj5IUGhLAAY/8gihTZoC4N+qLZmZmURERFw3Z2XTpk2yy+31nE0G18DSDePqNq/p2gghhKiESu10m56eztChQ0lJScFsNhMWFkZiYiLdunUD4MiRIyQkJHDx4kWCgoJ46aWXGD16dLkyjh8/TmZmpu3nmTNnAtCpU6dy982bN4/HH3/8FppUvTIzM7FYLPj4+JS7ppQiNzcXo9FIZGQkmzdvxtfXl59//pnO97fjq62rGP7nWJavXUmPXj2xlJRwuegyP505if9ZD7Ye383KnWsptBQR0K8ZSimCIzvz38S1OHbuDocOcn/Y/Xy6b1+5+sTGxhIaGsqYMWPQ6XS3++OoXTSAo2fpSwghRO1yG6anbovblcNy7tw5Baht27Zdda1JkyZKqdIcF5PJpJo3b640aFRLv2ZKpylNnAWUg8lBhXrVt/2s02qVj5OH6nRfW6XT6dT999+vHAz2SqvTKScfX/XynoMKUMuXL7+qapKzUgkHvpR9V4QQ4g5z23JY7jVlUz6/PXLA09MTjUaDk5MTAIMGDeLf//43x44dQ6H4IfUwGo2Wli0i+ezVOTQPaorGXo+DvQOPPfYY//10Ac5GRzYf2I7FYuHAgQMYdHq83DzoF9OVf7ZoUlPNvbtYLRBw7YMmhRBC3NkkYKmksimf9evX266V5ZPo9b/OsP3tb3/D1dWV0Z5eHOw5gpP/t4GlHV8jsKiAN4c/S5HByuMDB9HZaEfGN8tZ88THBHjUISEhgcKMPPaPWklow5ByZV6L5KxUgsFBTm4WQohaSk5rvgXx8fEMGzaMli1b0rp1a6ZOnYrBYGDPnj3Mnz+fZcuWcfr0afLy8lB6PdGrZ3Jh5XuY7Rzp2jSIH86mcDG3kCsnj5Di44OfvjkPfDCYYksxl1IzCbqvAalpqViUlWaRYezduxeAkydP8ve//52kpCROnjyJvb09bdu25a233iqX2Cyuw60eZBwBL/mshBCittEopVRNV6IqZGdnYzabycrKsu0qW2V+WgcNyx8s+N577zF58mRSU1Np3rw57777Lrt27WLy5MmcOXMGDw8PRo0axYTx4xnq5sZ/r1yhoKAAgDB/X5oH1GXNweNcys/HoNXibufKhbws8orzcTY50tizPgEtGvDliq+uqk67du2YPXs2JSUljBs3jv3793Pw4EEcHR2rtt13k6I8OLwSQh4Ek1NN10YIIcQvKvr9LQFLRVwjYKmIqKgomhQWMqagEPuWkWR6NqLrBxNp3zCILk0a8qfnJ+AeHMDnr48lKz2N/2xK5oWh/+BhXXsA/P7Zlj8/8jD29vYsWLDgmn8jIyMDb29vkpKSbHu5iGs4uQX8W4LBvqZrIoQQ4jcq+v0tU0LVpGy/ljGffQavjCd/dzLnfE7QyNuTs9l5ACz9z/hy7yksKcIc6o1fbHtKMq6gMeiwt7e/4eGRFT0s8p5XUijBihBC1GISsFSTsv1a6vj7U/fttzj/4hg8fergceEih1JKVxiFRD9A4+j2XE5NwcXTi2TdbKZMmUKHDh1o0KABa9euZdmyZdc9xLAyh0Xe8yTXVgghajUJWG4Dc9++mH85niD8xRe5nJTE84tXXHXftMZNiX3yKUJDQ9FoNDRo0IDY2Nhypzv/1siRI9m/f/8NR2DEL+6KiU8hhLh3ybLmamLbr+X7RDiyCs58B5YS0tLS8PX1veZ7CnSOpLSKw3/0FwydtpLDhw/j5OREcHDwVffGxcWxYsUKNm7ciL+/f3U3RwghhKhRErBUE+PpzUSGNWH9oQsQ0gs8GmI9to71iSuJbtm83L0ZOYU8++luHnh7Ixal8HJ1wqdOXUpKSli6dCn9+vWz3atq4WGRQgghxB8lU0LV4dg68LmP+DEv/26/luXkFVqIjbkP0g8z9IU38fPz4zNVuiqo8PwRhj7gxZc/G0g5fJ6eM57DarXy4osv2ooeOXIkCxcu5KuvvrIdFglgNpuxt5ekUiGEEHcnGWGpaj9vB/f64FLHtkX/+PHjad68OXv37mX16tX4RD8MRbmc/ukQKSkpdArxAmBMt2DmvDORb98axueTnsPPz4+tW7fi6upqK37mzJlkZWXRqVMn6tSpY3s1a9aM77777rrVKi4uZsKECTRo0AA7OzvCw8NZvXp1dX8aQgghRJWQfVgqoqL7sGQeK92grG7zipV76ltwDSBN682jH+7geEYeEwfezwebT9CtqQ/jHrz+GUKLFy9m6NChzJo1i6ioKKZOncqSJUs4cuQI3t7eV90/ZswYFixYwIcffkhoaCiJiYnEx8ezbds2WrRoUbH61mbH1kGjyu+lI4QQonpV9PtbRliqilKQfrDiwQpAUDs4twcfZxMr//EARp2WhGX7uJBbiItd6WzdjBkzCAoKwmAwYDKZMJlMREVF8c9//pOnn36a2NhYmjZtyqxZs3BwcGDIkCEEBwej1+sxmUwYjUbCw8OZM2cO48aNw8nJiVGjRjF27FgKCgpo1aoVLi4uREdHs2rVqur5bGqaUrKsWQghajkJWKrKiY0Q3Kny76vfAU4mYWfQ8dkzbQDILijBbG9g8eLFxMfH06tXLzQaDW3atMFkMtGgQQMOHDhAy5YtbcVotVrc3NzYunUrEREReHp68tRTT6HRaHjooYe4ePEi6enp5OXlER4ezsiRI4HS3Jfdu3fTpUsX+vXrx4EDB6ri07izXLkI9rKxnhBC1GYSsFSFvAug1YOdufLvdXAHNJB3gd/OzrnYG5gyZQpPP/00e/bs4ZlnnmHjxo04OzsTGBgIwM6dO8sVderUKXx8fNi2bRuvvPIKM2bMoHfv3pw+fRp/f3+mTZtGw4YNmTBhAp07dwZKh+IaN27MG2+8gZOTEzt27Ljlj6G6lI0y2dnZERUVdcNcnU6dOqHRaMq/nDx56IlfE5dzc3OJi4vD398fe3t72wiVEEKIO5cELFXh1BYIeuDW31+/A5zaTPMAV/7VvxlvDGhGp4buJCcn07FjR5KTk4mJiUGr1RITE8P3338PwP79+8sVY7FY0Gq1FBYWYmdnB2Db2j8qKoqioiJCQ0MxGo3ExcUBpSMzFouFRYsWkZeXR3R09K23AyDrLBxdA8fWluaNHFkFuRm3XFzZKNOrr77KCy+8wMGDB4mKiiIiIuKagcuyZctISUkhJSWF119/naCgIAC279rD6NGjKSgoID4+ntWrV9OrVy8aN27MiRMnGDFiBG3atOHIkSO3XFchhBDVRwKWP+pcMvhFgOYPJEloNODXEn3KHh5rU48hUfXIy76ExWLBZDJhsVjw8fEBwMfHh4sXL6LRaNixY0e5UQdfX18yMjJo27YtU6ZM4eOPP2bp0qWcPXuWr776ivz8fPR6PY0bN2bq1KlA6eohk8nE448/Tr169YiKisLb25v+/ftX/sv7RBJkp0Dj7tCoW2mSa+OekHm0dPXULSgbZXJwcGDy5MlMnToVLy8v9Ho9PXr0ID09vdz97u7u+Pr6smHDBt58803at2+Po70dH3/8MYsXL2bcuHFs27aNYcOGcebMGUaPHk1ycjKhoaFkZmbSvXt38vLybqmuQgghqo8ELLfKaoHjG6GkCFwD/3h5rgGQl1F6SN9NXLp0CaUUer0eDw8PkpOTadu2LdnZ2QQEBLBy5UoOHjxIbGwshYWFWCwWjEYjWq0WX19fjh07xkMPPQRA9+7d2blzJ3Xr1iUlJYX//ve/rF27lsOHDxMaGmrLdbmpU1vBPRgCWpW/rtGUJhc7eMDZ3ZX6SMoOkIyJibEFLk8++SS9evXC19cXBweH6x5bsG3bNtq1a8fevXt5tE8X+vbty+DBg/nuu+9o27YtX3/9NR999BHDhg0jPT2ds2fPMmXKFE6fPk1ycnKl6imEEKL6ScBSGcUFcHIzHE2E4xvAvxXU+4NTKL/VMKZ0CTW/bu1fWFhYusV/WumBiWlpaVy4cAFXV1cKCgro1asXy5YtA+DixYvMmPEkeR//hT810fNCeyeGD34IvV5vWyo2fvx4FixYgKOjIwAPPPAAkZGRnDhxgqioKFauXElRURH5+fkAV41gXNOF46UnIbsGXP8er8ZQmA35lyv8cZQdIOnu7s7u3bv5/PPPsbOzY82aNZw4cYKYmBi2b7965KZTp07MmDGDDRs2sH//fj78/H9oNBpmz57Ngw8+yPTp02natCn+/v4YjUZiYmLIzc215QTJyddCCHHnkYClos5/DyeTwC8SGvconfIwOVXt39AZwMkXLp/BaDQSGRnJ5s2biYyMZP369VitVtatW0d2djY5OTkEBQWxdu1a/vKXv+Dq6opeD/9d+Cb2J1aTiRtp2QWsSdqOXq8nLS0Ne3t7Ro4cyciRI/HyKt2sbs2aNbY/b7Vayc3NZciQIUyYMAHAlgtzQ+kHSz+XmwnuXBrwVdI333yD1Wq1JSB7e3tz+PBhTp06xerVq69Kxl22bBmfr9tOyH1hAOh1OgDq1KnD/PnzcXJyYuHChfTt25c33niDOnXqALBgwQI5+VoIIe5QErBURGEOGBxLAxWjY/X+Lf/I0rwYpYiPj+fDDz8kMjKSDz74gK5du5KVlYXVasVisVCnTh0effRRBg7sTp26GkwmDd9uzmXZoWJifLP46aKVK7k5ODs7o5Ri9OjRpKen869//YvTp08D8MMPP7BkyRJGjhzJpk2bSE9P58EHH2TJkiW4uLjg4eFx4/qeS4a6ERVrm0YDbvXg0s8Vur1slGnp0qUA9O7dm6ZNmxIeHo5Wq2XLli34+fmxZ88ewsPDbTkt7mfXMXJWIkcO/MhfHh7E6Ng/YTAY+Omnn7jvvvvQaDSMHz+eHTt28M9//pPExET0ej3nz59n0aJFFWuLEEKI20rOEqqI+wbc3r9XvwPsX8qgfr3I+Pe/mTx5MhaLhW3btmG1Wm235efnc+7czxw8tI7cHAtarYaTp0p45KcirAoUYLYrJqZ7J7Zs2cK//vUv3njjjXLLp7Oysnj44YfxdnTkaTd3tp0/R1Bdb/bv30/Tpk1vXM9Lp0qneCoyulKmTjgcWV0auNyE0WgkIiKCXbt2odVqSUtLw2q1smHDBgwGA0ajkfvvv9+2LHnlypXMfX8qI/iES+sVaLT0Hv4yk4f3oVGjRgCsXr2a4uJiIiIiMJlMODo6MnPmTCwWC0FBQXLytRBC3KFkhOVO5OAO9w2E1B+J6xHCz+s+ouTQKgoPriLvciZabWm3vf/++3zyyUI+mvMQISHOODtraVhPT9ErLuRsfRPLrI5cfNGZzz//nB/37qV3u/vQoNBpwNXBDlcnJ0w6HYcjW/KZjw/Lci/RpI4bq9etZ+MHL2HSlFy/jhlH4PJpaNi18u3T6ip8a2xsLADOzs489thjGI1GUlNTuXLlCoWFhZw5c4aEhAS0WWeI8cpg+6LJZFqdKMlKB42W2O4R7D96CrPZzIkTJ7BarXTo0IFHH32Us2fPcubMGWbMmIFSisjISgReQgghbisJWO5UWi0Etf91eXCjblCvHcbzu4i4rzEajcaWiBsR8Tn799vj7R1KwC/JtfZrJpXm3QREAeC1912+iTlD3qKnWRUUjFNRCYElJfjrdFhzcznukE1mkZUl67eRkpZJowdHkLR9N++++y56vR6LxQLF+aVlHl5Z+u/6HW6tbdc4vup6m8P169cPKB0JysvLw9fXl6io0jaVlJTw/fffM3v2bGIGDuVIpoXUXCvv7nMCawlYS7CWFAOwa9curFYrRUVFbN26lezsbFsZAA4ODjRr1ozU1FRbwrEQQog7hwQstYneBI1ieOH55wF47733OHToECNGjCA3N5e0tAt0jBnE0OX5JKQ8CL3+DQ4e7Hy1A8vmvsPxC1a2ZjbglbRUNCYDl+3s6P/nP2MyF7M2pRAnJyfmzp3LunXrWLduHeHh4TwyaBB7V81Hd2Jj6bJkF38IfahyZyb93u/2rPnt5nC/z0fx9PQEoFevXkyfPh2dTmdbGeTq6srx48d544032JC0hcwSBwBO5Npj8AqiVecHAdD+knRbVFTEiy++yPPPP49Goyk3NXblyhVee+016tSpw+LFi2+9bUIIIaqHuktkZWUpQGVlZdV0VW6Lxx99WAFKp9Op+++/X/Xv31+5urqqlPPnVYe2bVVw/SA1tp1RqVdd1KZhDirIrFF6DcpZq1XtHBxUm8ZBqn79+uqHAb3V6S71FKUpL1e9unXrVvWVP7q23I+tW7dWI0eOtP1ssVhU3bp1Vd++fVVgYKAClNlsVjt37lRKKeXr66sA5e/vb3vPwIEDlbuTSTkaUBqtVoFGRbZsqTRanXpp9nJlb2+v9Hq9mjx5svrzn/+szGaz0uv1SqPRKEC5ubmpMWPGqMOHD1d9e4UQQlxXRb+/ZYSllpr338VMf2Mcfr5eHDlyhPPnz7N69WpK3nyTWRcuUtdg4VyWIsfahlYd45ga5kGgwUihUhzWa2nQrAVLosNwzz2Iy6h3UUpd9erYsePNE29vhbLY/vnbzeHKaLVaGjRowIoVKxg1ahRQeuZR586d2bp1K5cuXQKgoKAAgKFDh7Jz504u5hbSrUsPwp+ciVPzXiTv3o2yWnjj2QHo9XqsVivvvPMOTk5OrFmzhn//+98YDAYA9Ho9vr6+hISEVH17hRBC/GEapa6RUFALZWdnYzabycrKsm2Sdk84vQPsXME7lJKLFznWtt2179MoTB4GcPTE5GbFknYaTM54vPYBjm3a3NYqc2xdaV4OcP78efz8/Ni2bVu5c4zq1q2LxWLh+++/x8/Pj+eee47p06cDpSdM5+fnU1BQwEcffcSkSZM4evQoAF/M2MI3iTv5dGUCVktp/opGq0VZrWi1Who1asSqVav46aefGDFiBJGRkXz++ed4eXkxbtw4nnvuudv7WQghxD2uot/fsqy5tgtsA6e+hXPJnI77FwDGhg1QV/JxjgzG4GogbeFGHDyL0GgL0Rq1aOt1wfnxBBzbt0fnVMWb31WERlN6tMF1VgsVFRWRmpqKp6cnbdu2BWDlypX06NEDvV7PnDlziIyM5MyZMzzxxBNA6SqinJwcnnxxANl5F9BotOj1Bpp0cGDSqwt5/+33WblyJUePHiU4OBgoHVXp2rV0ldMHH3xA//79q7/tQgghbolMCd0NgtqBozeGrL041S3A3jEThwAtlosp5O/ajnOdfExdHsPr3W/w++p76rz1Di49e9ZMsAKl2/iXlE7nlG0OV7biCUq35FdKkZmZyauvvsr999+PwWBg/fr1nDlzBpMG8nNzeLx/Hw79uBer1UqTJk3QarXk5l9CobAqCxZrCQ2i/YhpF8OQIUNs5T/77LMsX76cbt268cEHH9z25gshhKg8GWG5W7gGUGfpHi7On48qLELlXkIV5qIP7YBzj57Yh4XVdA1/pdGCKt0Ar+wIgvXr19tGOMo2x2vatCmxsbE4ODgwdOhQNBoN58+f56knniAvN5d61nyKM9L461//yq5duzAYDMyYMYP/rF7B4RWrURYLG+ZlkNQxiVdeeQUoDZBmzZpFbm4uQUFBrF+/nqKiIk6ePMnevXtxd3cnMLAKDrMUQghRpSRguYvo3dzwrg05GM51IPs8eJUmuMbHxzNs2DBatmxJ69atefvttwHo0qULUDod1LFjRzZu3EhaWhp7ftxH59AGFJVYSDy0jeVfL0cpRfv27XnqqaeY1yQKp2OnyT3wA9nnMxg6dCh169YFsG0Ot3PnznKJvvHx8QAMGzaMjz/++HZ9EkIIISpIAhZx+7kGwk/rbQHLoEGDyMjIYPz48aSmptpWJp0/fx6A06dPU69ePezs7HB1dWXU0MG8Me09Eg8eg82bcQ5zpviHYnZ/v5tjx45xPu0LLNpLYCkdqSkpKcHNzY3OnTuTlpaGk5MTBQUFmM1mOnXqRHp6Otu2bauZz0IIIUSFSMAibr/fbRwHEBcXR1xcHPDryqGvv/6a+fPnM3PmTKZOnUpxcTHubm4UnzyER6AZa6Ad/Z/oxXd5P3L2s7NcWHOBxiGNQQN6sx69nRZLoZWMjAygdLfb6OhoRo0axQMPPMDcuXP56quveOutt25r84UQQlSeJN2KmmEtLt3e/xrKEnGHDRvG+PHjad68OXv37qVr167kFKczL+Y4p4ovYbqgo1XDB7AoC6NfHs0jcY/g4O0AWnAyOuHqZcS7nret3FatWvHll1+yZs0aHnnkEY4dO0ZoaCjHjx+/Xa0WQghxi2SERdSMgCh4rzWM2nvV8uayRFw7Ozt+/vlnoDQRNzAwkJJocASmf/g2j7cdTviC5gAs/mkxKkIRHFG6ZHlm55k81LILXQa0LVd279696d27t+3nLl26UFhYWG3NFEIIUTVkhEXUDAd3GDgbDn4JRVeu+nV8fDwffvgh8+fPt52XlJeXR9K/kzBoDTw/9mVaPtaKeT3m0cG/A8azRsxHzBSlF1H/Qn3GDRuHsiqeiHvCVmZCQgKbN2/m1KlT7Nu3j4SEBDZt2lRuybMQQog7k4ywiJpTr23pBnI/rQedAeq1+2W0RXNVIm7z5s1ZvXo1IfVC2PrIVlq/15qTZ07y2vbXWDFgBUn6JEaMGMHPJ37mgtMF2nVtR7/n/ahfp77tz6WnpzN06FBSUlIwm82EhYWRmJhIt27dau4zEEIIUSGyNb+4MxTmwrndYCn+ZSdcK6BAUzZdpMDFDzwbg07PiawT9PuyH2+2f5M+DfpcVdzms5tZ+M0TvDZ0K76Ovre1KUIIISpOtuYXtYvJCYI7Xf/3SpXu3XIyCawlnD+/Hb1S7MvcR2vf1vg4+pS7PTM/EwAPO49qrLQQQojbRQIWUTtoNGD2K30BLQJa8lp+Jt/+sJC/HFpEp0b9eTrsaQKcA4DSgMXJ4IRBZ6jJWgshhKgiknQraiVHew/69XqP8cO2kVCvL/mHvuShpb345vg3AGTmpeFsZ67hWgohhKgqErCIWs3J5EKvzv/iiYfm0D3vCu9sepHsomwKs86i/d00kRBCiNpLAhZxV2hSpzUD+y+gmTLyyvKHuZh5EK3Zv6arJYQQoopIwCLuGm392vL3P32BJf8igRdPo3GQhFshhLhbSMAi7iqN3BoR338RZ/V66rsG13R1hBBCVBFZJSTuOsGuwUx4cg/ORuearooQQogqIgGLuCuZTbJCSAgh7iaVmhKaOXMmYWFhuLi44OLiQnR0NKtWrbL9/vjx4wwYMAAvLy9cXFx4+OGHSUtLu2m5M2bMICgoCDs7O6Kiovjuu+8q3xIhhBBC3LUqFbD4+/szadIkkpOT2b17N126dKFfv34cOHCAvLw8unfvjkajYcOGDXz77bcUFRXRp08frFbrdctcvHgx8fHxvPrqq+zZs4fw8HB69OhBenr6H26cEEIIIe4Of/gsIXd3dyZPnkxAQAC9evXi0qVLtrMAsrKycHNzY82aNcTExFzz/VFRUbRq1Yr33nsPAKvVSkBAAH//+98ZO3ZsheshZwkJIYQQtU9Fv79veZWQxWJh0aJF5OXlER0dTWFhIRqNBpPJZLvHzs4OrVbL1q1br1lGUVERycnJ5YIZrVZLTEwM27dvv+HfLywsJDs7u9xLCCGEEHenSgcs+/btw8nJCZPJxPDhw1m+fDlNmzalTZs2ODo6MmbMGK5cuUJeXh4vvPACFouFlJSUa5aVmZmJxWLBx6f8jqQ+Pj6kpqbesB4TJ07EbDbbXgEBAZVtihBCCCFqiUoHLCEhIezdu5edO3cyYsQIhg0bxsGDB/Hy8mLJkiV88803ODk5YTabuXz5MhEREWi1Vb/dS0JCAllZWbbXmTNnqvxvCCGEEOLOUOllzUajkYYNGwIQGRnJrl27mDZtGrNnz6Z79+4cP36czMxM9Ho9rq6u+Pr6Ehx87Q28PD090el0V60kSktLw9fX94b1MJlM5aafhBBCCHH3+sNDH1arlcLCwnLXPD09cXV1ZcOGDaSnp9O3b99rvtdoNBIZGcn69evLlbd+/Xqio6P/aNWEEEIIcZeo1AhLQkICvXr1IjAwkJycHBYuXMimTZtITEwEYN68eTRp0gQvLy+2b9/OqFGjGD16NCEhIbYyunbtyoABA4iLiwMgPj6eYcOG0bJlS1q3bs3UqVPJy8sjNja2CpsphBBCiNqsUgFLeno6Q4cOJSUlBbPZTFhYGImJiXTr1g2AI0eOkJCQwMWLFwkKCuKll15i9OjR5coomzIqM2jQIDIyMhg/fjypqak0b96c1atXX5WIK4QQQoh71x/eh+VOIfuwCCGEELVPte/DIoQQQghxu0jAIoQQQog73l1zWnPZzJbseCuEEELUHmXf2zfLULlrApacnBwA2fFWCCGEqIVycnIwm83X/f1dk3RrtVo5f/48zs7OaDSamq7OXS87O5uAgADOnDkjSc61iPRb7SN9VjtJv1WcUoqcnBzq1q17w53x75oRFq1Wi7+/f01X457j4uIiD2MtJP1W+0if1U7SbxVzo5GVMpJ0K4QQQog7ngQsQgghhLjjScAibonJZOLVV1+VAyhrGem32kf6rHaSfqt6d03SrRBCCCHuXjLCIoQQQog7ngQsQgghhLjjScAihBBCiDueBCxCCCGEuONJwCKu6+jRo/Tr1w9PT09cXFxo3749GzduvOa9Fy5cwN/fH41Gw+XLl29YblBQEBqNptxr0qRJ1dCCe0919dnFixcZMmQILi4uuLq68uSTT5Kbm1sNLbg33azfLly4QM+ePalbty4mk4mAgADi4uJuenaaPGvVp7r6TJ6165OARVxX7969KSkpYcOGDSQnJxMeHk7v3r1JTU296t4nn3ySsLCwCpc9YcIEUlJSbK+///3vVVn1e1Z19dmQIUM4cOAAa9euZcWKFWzevJlnnnmmqqt/z7pZv2m1Wvr168fXX3/N0aNH+fjjj1m3bh3Dhw+/adnyrFWP6uozedZuQAlxDRkZGQpQmzdvtl3Lzs5WgFq7dm25e99//33VsWNHtX79egWoS5cu3bDsevXqqXfeeacaan1vq64+O3jwoALUrl27bNdWrVqlNBqNOnfuXJW3415TmX77rWnTpil/f/8bli3PWvWorj6TZ+3GZIRFXJOHhwchISF88skn5OXlUVJSwuzZs/H29iYyMtJ238GDB5kwYQKffPLJDQ+t+r1Jkybh4eFBixYtmDx5MiUlJdXRjHtKdfXZ9u3bcXV1pWXLlrZrMTExaLVadu7cWS1tuZdUtN9+6/z58yxbtoyOHTvetHx51qpedfWZPGs3dtccfiiqlkajYd26dfTv3x9nZ2e0Wi3e3t6sXr0aNzc3AAoLCxk8eDCTJ08mMDCQEydOVKjsf/zjH0RERODu7s62bdtISEggJSWFKVOmVGeT7nrV1Wepqal4e3uXu6bX63F3d7/mVJOonIr0W5nBgwfz1VdfkZ+fT58+fZgzZ84Ny5ZnrXpUV5/Js3ZjMsJyjxk7duxVSXi/fx0+fBilFCNHjsTb25stW7bw3Xff0b9/f/r06UNKSgoACQkJNGnShMcee6xSdYiPj6dTp06EhYUxfPhw/vOf/zB9+nQKCwuro8m13p3QZ6LyqrLfyrzzzjvs2bOHr776iuPHjxMfH3/DOsizVjl3Qp+J65Ot+e8xGRkZXLhw4Yb3BAcHs2XLFrp3786lS5fKHY3eqFEjnnzyScaOHUvz5s3Zt28fGo0GAKUUVqsVnU7HSy+9xOuvv16hOh04cIBmzZpx+PBhQkJCbr1xd6ma7rO5c+fy/PPPc+nSJdu1kpIS7OzsWLJkCQMGDKiilt5dqrLfrmXr1q088MADnD9/njp16lSoTvKs3VhN95k8azcmU0L3GC8vL7y8vG5635UrVwCuynHQarVYrVYAli5dSn5+vu13u3bt4oknnmDLli00aNCgwnXau3evbUhVXK2m+yw6OprLly+TnJxsm5/fsGEDVquVqKioW2rTvaAq++1ayn5XmdESedZurKb7TJ61m6i5fF9xJ8vIyFAeHh5q4MCBau/everIkSPqhRdeUAaDQe3du/ea79m4ceNVK0527typQkJC1NmzZ5VSSm3btk298847au/ever48eNqwYIFysvLSw0dOvR2NOuuVl19ppRSPXv2VC1atFA7d+5UW7duVY0aNVKDBw+u7ibdEyrSbytXrlRz585V+/btUydPnlQrVqxQTZo0Ue3atbOVI8/a7VNdfaaUPGs3IgGLuK5du3ap7t27K3d3d+Xs7KzatGmj/ve//133/mt9+ZVdO3nypFJKqeTkZBUVFaXMZrOys7NTTZo0UW+++aYqKCio5tbcG6qjz5RS6sKFC2rw4MHKyclJubi4qNjYWJWTk1ONLbm33KzfNmzYoKKjo23PTaNGjdSYMWPkWatB1dFnSsmzdiOSwyKEEEKIO56sEhJCCCHEHU8CFiGEEELc8SRgEUIIIcQdTwIWIYQQQtzxJGARQgghxB1PAhYhhBBC3PEkYBFCCCHEHU8CFiGEEELc8SRgEUIIIcQdTwIWIYQQQtzxJGARQgghxB1PAhYhhBBC3PH+H2wolQp/oDR+AAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(\"overused units\")\n",
    "maxPlot = 1.06\n",
    "for u in range(nUnits):\n",
    "    if unitUse[u] > maxPlot:\n",
    "        plotPoly(unitGeom[u])\n",
    "        plotCenter(round(unitUse[u],2),unitGeom[u])\n",
    "plotPoly(MAP,0.2)\n",
    "plt.show()\n",
    "print(\"underused units\")\n",
    "minPlot = 0.94\n",
    "for u in range(nUnits):\n",
    "    if unitUse[u] < minPlot:\n",
    "        plotPoly(unitGeom[u])\n",
    "        plotCenter(round(unitUse[u],2),unitGeom[u])\n",
    "plotPoly(MAP,0.2)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 150,
   "id": "0d4f1372-6044-4803-91d9-de4b95a40083",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "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N+rpp5/Wyy+/rC+++EIrV67UmjVr9OSTT3q6NI954YUXdNFFF6l///4KCgpSWlqa7rrrLvn7888S0BrLli3T/Pnz9fbbbys6OtrT5TgdPShn6dKliwICAnTkyBG77UeOHFFMTEyTr4mNjVVgYKACAgJs2wYMGKDi4mJVV1crKCjIpTW7WluuyWkVFRVavny5FixY4MoS3aot12POnDm64447dM8990iSBg4cqIqKCk2fPl2PP/641/9Sbss16dq1q1atWqVTp07p+PHjiouL06OPPqoLL7zQHSWbTkxMTJPXLzw8nN4TNLJ8+XLdc889eueddxp9NegrvPtfRRcICgrS0KFDtX79etu2+vp6rV+/XklJSU2+5oorrlBBQYHq6+tt2/bs2aPY2FivDydS267Jae+8846qqqp0++23u7pMt2nL9aisrGwUQk4HWsMHlsM6nz8jwcHBio+PV21trf7+97/rF7/4havLNaWkpCS76ydJH3744TmvH9qft956S3fddZfeeustn5q6oRFPj9I1o+XLlxsWi8XIyckxdu7caUyfPt2IjIw0iouLDcMwjDvuuMN49NFHbe0PHjxohIWFGWlpacbu3buN1atXG9HR0cZTTz3lqbfgdI5ek9OuvPJK49Zbb3V3uS7n6PWYO3euERYWZrz11lvG/v37jX/+859G7969jVtuucVTb8HpHL0mW7ZsMf7+978b+/btMzZv3mxcc801Rq9evYwTJ0546B04148//mh8+eWXxpdffmlIMp577jnjyy+/NL799lvDMAzj0UcfNe644w5b+/379xshISHGww8/bOzatcvIzs42AgICjLVr13rqLTido9fEMAxb+6FDhxq33Xab8eWXXxpff/21J8p3CUevyZtvvml06NDByM7ONoqKimyPkpIST70FlyGgNGPx4sVG9+7djaCgIGPYsGHGli1bbPuSk5ONyZMn27X/9NNPjeHDhxsWi8W48MILjd/+9rdGbW2tm6t2LUevyTfffGNIMv75z3+6uVL3cOR61NTUGPPmzTN69+5tBAcHGwkJCcZvfvMbn/llfJoj12Tjxo3GgAEDDIvFYnTu3Nm44447jMOHD3ugatfYsGGDIanR4/Q1mDx5spGcnNzoNYmJiUZQUJBx4YUXGkuXLnV73a7UlmvSVPsePXq4vXZXcfSaJCcnt9jel/gZhg/0LwMAAJ/CGBQAAGA6BBQAAGA6BBQAAGA6BBQAAGA6BBQAAGA6BBQAAGA6BBQAAGA6BBQAAGA6BBQAAGA6BBQAAGA6BBQAAGA6BBQAAGA6/x8Q+5Gow6p+MwAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "unpatched, patched use avgs are 1.00105 1.00096 and their SDs are 0.09076 0.03989\n",
      "And here is the pop distro\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjIAAAGdCAYAAAAIbpn/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAArV0lEQVR4nO3de3RU5b3/8c/kNkmASQyQDCnhJnKTqygxLbpoyS8BqcgBF4VyxCoVq8EuTVXEJSDaYzhKi0sPSNufQNsjolhFBcUGUNAaQCMpVylQECwkKDQZbpncnt8f/rLplAQMJMx+wvu11l7u2fvJnu88szGfPPvmMcYYAQAAWCgi3AUAAABcKIIMAACwFkEGAABYiyADAACsRZABAADWIsgAAABrEWQAAIC1CDIAAMBaUeEu4ELU1NTo0KFDatWqlTweT7jLAQAA34IxRsePH1dqaqoiIhpnLMXKIHPo0CGlpaWFuwwAAHABDh48qPbt2zfKtqwMMq1atZL0TUf4fL4wVwMAjazqpPR66jfzow9JUS3CWw/QSAKBgNLS0pzf443ByiBTezjJ5/MRZAA0P1WRUvz/n/f5CDJodhrztBBO9gUAANayckQGAJo1T5TU+fYz8wDqxb8QAHCbSK+UsTjcVQBW4NASAACwFiMyAOA2xkjVp76Zj4yXuF8WUC9GZADAbapPSa+2/GaqDTQA6kSQAQAA1iLIAAAAaxFkAACAtQgyAADAWgQZAABgLYIMAACwFveRAQC38URKabeemQdQL4IMALhNZKx0w7JwVwFYgSADAI2g0yMrw11Cg+2fPSLcJQAXjXNkAACAtQgyAOAycZ5y7e/7Q+3v+0PFecrDXQ7gagQZAABgLYIMAACwFkEGAABYiyADAACsRZABAADWIsgAAABrcUM8AK5j483lGlONIrQ2cK0zD6B+BBkAcJmgidGd+x8PdxmAFYj6AADAWgQZAABgLYIMALhMnKdcO3qP0Y7eY3hEAXAenCMDAC4UHxEMdwmAFRiRAQAA1iLIAAAAaxFkAACAtQgyAADAWgQZAABgLa5aAgCXqZFHG070duYB1I8gAwAuEzRejfv77HCXAViBQ0sAAMBaBBkAAGAtggwAuEycp1yFvX6swl4/5hEFwHk0KMjk5eXpuuuuU6tWrZScnKxRo0Zp165dIW2GDBkij8cTMv3sZz8LaXPgwAGNGDFC8fHxSk5O1kMPPaSqqqqL/zQA0Ey0jgqodVQg3GUArtegk33XrVunnJwcXXfddaqqqtKjjz6qrKws7dixQy1atHDa3XXXXXriiSec1/Hx8c58dXW1RowYIb/fr48//liHDx/WxIkTFR0draeeeqoRPhIAALhcNCjIrFq1KuT14sWLlZycrMLCQt14443O8vj4ePn9/jq38ec//1k7duzQ6tWrlZKSov79++vJJ5/U1KlT9fjjjysmJuYCPgYAALgcXdQ5MmVlZZKkpKSkkOUvvfSS2rRpo969e2vatGk6deqUs66goEB9+vRRSkqKsyw7O1uBQEDbt2+v832CwaACgUDIBAAAcMH3kampqdH999+v733ve+rdu7ez/Mc//rE6duyo1NRUbdmyRVOnTtWuXbv0+uuvS5KKi4tDQowk53VxcXGd75WXl6dZs2ZdaKkAAKCZuuAgk5OTo23btumjjz4KWT558mRnvk+fPmrXrp2GDh2qvXv36sorr7yg95o2bZpyc3Od14FAQGlpaRdWOAAAaDYuKMhMmTJFK1as0Pr169W+fftztk1PT5ck7dmzR1deeaX8fr82bdoU0qakpESS6j2vxuv1yuv1XkipAGCdGnn011NXOfMA6tegc2SMMZoyZYreeOMNrV27Vp07dz7vzxQVFUmS2rVrJ0nKyMjQ1q1bdeTIEadNfn6+fD6fevXq1ZByAKBZChqvbtkzV7fsmaug4Y844FwaNCKTk5OjJUuW6M0331SrVq2cc1oSEhIUFxenvXv3asmSJbrpppvUunVrbdmyRQ888IBuvPFG9e3bV5KUlZWlXr166bbbbtPTTz+t4uJiPfbYY8rJyWHUBQAANEiDRmReeOEFlZWVaciQIWrXrp0zvfLKK5KkmJgYrV69WllZWerRo4d+8YtfaMyYMXr77bedbURGRmrFihWKjIxURkaG/vM//1MTJ04Mue8MAADAt9GgERljzDnXp6Wlad26defdTseOHfXOO+805K0B4LIR6ynX6u73SpIyd81XuYkNc0WAe13wVUsAgKbhkdQ+5ogzD6B+PDQSAABYiyADAACsRZABAADWIsgAAABrEWQAAIC1uGoJAFzGSPpbeQdnHkD9CDIA4DLlJlZZf5vf5O/T6ZGVTf4ejW3/7BHhLgEuw6ElAABgLYIMAACwFkEGAFwm1lOu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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "checking contiguity of final HDs\n",
      "working on HD 1600 out of 8941\n",
      "working on HD 7200 out of 8941\n",
      "all done checking HD and complement contiguity for all 8941 HDs\n"
     ]
    }
   ],
   "source": [
    "patchedUse, unpUse = [0.]*nUnits, [0.]*nUnits\n",
    "for t in popHDlist:\n",
    "    for u in HDunitList[t]:\n",
    "        patchedUse[u] += HDweight[t] * nDistricts\n",
    "    for u in unpatchedHDlist[t]:\n",
    "        unpUse[u] += HDweight[t] * nDistricts\n",
    "plt.hist(patchedUse,bins=50, label=\"patched\",histtype=\"step\")\n",
    "plt.hist(unpUse, bins=50, label=\"unpatched\",histtype=\"step\")\n",
    "plt.legend()\n",
    "plt.show()\n",
    "patchedAvg, patchedSD = getWeightedAvgAndSD(patchedUse,unitPop)\n",
    "unpatchedAvg, unpatchedSD = getWeightedAvgAndSD(unpUse,unitPop)\n",
    "print(\"unpatched, patched use avgs are\",r5(unpatchedAvg), r5(patchedAvg),\"and their SDs are\",r5(unpatchedSD), r5(patchedSD) )\n",
    "print(\"And here is the pop distro\")\n",
    "plt.hist([HDvPop[t] for t in popHDlist])\n",
    "plt.axvline(aDP, ls=\"--\",color=\"orange\")\n",
    "plt.show()\n",
    "print(\"checking contiguity of final HDs\")\n",
    "for t in popHDlist:\n",
    "    if t%800 == 0:\n",
    "        print(\"working on HD\",t,\"out of\",nHDs)\n",
    "    unbroken, noEnclave, sList, eList = enclaveCheck(HDunitList[t], unitNbrs)  #these HDunitLists now appear to be sets\n",
    "    if not unbroken or not noEnclave:\n",
    "        print(\"uh-oh, HD\",t,\"has contiguity, complement-contiguity of\",unbroken, noEnclave)\n",
    "print(\"all done checking HD and complement contiguity for all\",nHDs,\"HDs\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 151,
   "id": "ac9cd133-94f0-494b-ac74-0c584482d97e",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Lets write these UNIT lists to a file\n"
     ]
    }
   ],
   "source": [
    "print(\"Lets write these UNIT lists to a file\")\n",
    "HDvPop = [0. for t in range(nHDs)]  #writing UNIT lists to a file\n",
    "tList = [t for t in range(nHDs)]\n",
    "for t in popHDlist:\n",
    "    for u in HDunitList[t]:\n",
    "        HDvPop[t] += unitPop[u]\n",
    "outDF = pd.DataFrame( {\"tract\":tList,\"HDweight\":HDweight,\"HDvPop\":HDvPop,\"HDunitList\":HDunitList,\n",
    "                      \"centroid x\":hdCPx, \"centroid y\":hdCPy} )\n",
    "outname = STATE+str(int(nHDs))+\"FrankHamLegislPatched.csv\" #\"contigUnpatchedB.csv\"\n",
    "outpath = \"2024state_HD_output/\"+outname\n",
    "outDF.to_csv(outpath)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 152,
   "id": "26b87c95-101f-4f8f-bb73-feb1827ac6b5",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdin",
     "output_type": "stream",
     "text": [
      "enter 1 if there were NO fragmented VTDs 0\n"
     ]
    }
   ],
   "source": [
    "noFrag = int(input(\"enter 1 if there were NO fragmented VTDs\"))\n",
    "if noFrag == 1:\n",
    "    nFragmentedVTDs,fragmentedVTDs = 0, list()\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 153,
   "id": "ec102553-e4f3-4010-86bc-725a01b95788",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "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AFgOAcZDf/jDH9SxY0fFxsaqf//+KikpCfSQLCU/P1+33367WrVqpZSUFN111106fPiwS5u6ujrl5uaqdevWatmypUaPHq3KykqXNsePH9fIkSMVHx+vlJQUTZs2TY2NjS5t3nvvPfXu3VsxMTHq3LmzVq1a5eu3ZzmLFy9WRESEJk+e7DzG9fedkydP6v7771fr1q0VFxennj17aufOnc7zhmEoLy9Pbdu2VVxcnLKzs/XRRx+59FFVVaWxY8cqISFBSUlJmjBhgmpra13a7N27V4MHD1ZsbKzatWunJUuW+OX9BbOmpibNnTtXGRkZiouL00033aTf/va3LvV2uP4WY8Btr776qmGz2Yw//elPxv79+40HH3zQSEpKMiorKwM9NMvIyckx/vznPxvl5eXG7t27jREjRhjt27c3amtrnW0efvhho127dkZhYaGxc+dOY8CAAcYdd9zhPN/Y2Gj06NHDyM7ONv7xj38YGzduNNq0aWPMmjXL2ebo0aNGfHy8MXXqVOPAgQPGCy+8YERFRRmbN2/26/sNZiUlJUbHjh2N7373u8ajjz7qPM71942qqiqjQ4cOxs9//nOjuLjYOHr0qLFlyxbj448/drZZvHixkZiYaLz99tvGnj17jP/4j/8wMjIyjHPnzjnbDBs2zLj11luNHTt2GO+//77RuXNn47777nOer6mpMVJTU42xY8ca5eXlxiuvvGLExcUZf/zjH/36foPNwoULjdatWxvr1683jh07ZrzxxhtGy5Ytjeeee87ZhutvLQQYD/Tr18/Izc11/rmpqclIT0838vPzAzgqazt9+rQhydi2bZthGIZRXV1ttGjRwnjjjTecbQ4ePGhIMoqKigzDMIyNGzcakZGRRkVFhbPNsmXLjISEBOP8+fOGYRjG9OnTje7du7t8r3vvvdfIycnx9VuyhDNnzhg333yzUVBQYPzbv/2bM8Bw/X1nxowZxqBBg6543uFwGGlpacZTTz3lPFZdXW3ExMQYr7zyimEYhnHgwAFDklFaWupss2nTJiMiIsI4efKkYRiGsXTpUuP66693/iwufO8uXbqY/ZYsZeTIkcYvfvELl2OjRo0yxo4daxgG19+KWEJyU319vcrKypSdne08FhkZqezsbBUVFQVwZNZWU1MjSUpOTpYklZWVqaGhweU6d+3aVe3bt3de56KiIvXs2VOpqanONjk5ObLb7dq/f7+zzcV9XGjDz+obubm5Gjly5CXXiOvvO++884769u2rH//4x0pJSVGvXr304osvOs8fO3ZMFRUVLtctMTFR/fv3d7n2SUlJ6tu3r7NNdna2IiMjVVxc7GwzZMgQ2Ww2Z5ucnBwdPnxYX331la/fZtC64447VFhYqCNHjkiS9uzZow8++EDDhw+XxPW3opAt5mi2f/7zn2pqanL5pS1JqampOnToUIBGZW0Oh0OTJ0/WwIED1aNHD0lSRUWFbDabkpKSXNqmpqaqoqLC2eZyP4cL567Wxm6369y5c4qLi/PFW7KEV199Vbt27VJpaekl57j+vnP06FEtW7ZMU6dO1ezZs1VaWqpf//rXstlsGj9+vPPaXe66XXxdU1JSXM5HR0crOTnZpU1GRsYlfVw4d/311/vk/QW7mTNnym63q2vXroqKilJTU5MWLlyosWPHShLX34IIMAiY3NxclZeX64MPPgj0UMLGiRMn9Oijj6qgoECxsbGBHk5YcTgc6tu3rxYtWiRJ6tWrl8rLy7V8+XKNHz8+wKMLfa+//rrWrl2rl19+Wd27d9fu3bs1efJkpaenc/0tiiUkN7Vp00ZRUVGX3I1RWVmptLS0AI3KuiZNmqT169frb3/7m2688Ubn8bS0NNXX16u6utql/cXXOS0t7bI/hwvnrtYmISEhLP/v/4KysjKdPn1avXv3VnR0tKKjo7Vt2zY9//zzio6OVmpqKtffR9q2bavMzEyXY926ddPx48cl/evaXe13TFpamk6fPu1yvrGxUVVVVR79fMLRtGnTNHPmTI0ZM0Y9e/bUuHHjNGXKFOXn50vi+lsRAcZNNptNffr0UWFhofOYw+FQYWGhsrKyAjgyazEMQ5MmTdJbb72lrVu3XjLV2qdPH7Vo0cLlOh8+fFjHjx93XuesrCzt27fP5RdJQUGBEhISnB8QWVlZLn1caBPuP6vvf//72rdvn3bv3u386tu3r8aOHev8b66/bwwcOPCSRwYcOXJEHTp0kCRlZGQoLS3N5brZ7XYVFxe7XPvq6mqVlZU522zdulUOh0P9+/d3ttm+fbsaGhqcbQoKCtSlS5ewXr44e/asIiNdP/KioqLkcDgkcf0tKdC7iK3k1VdfNWJiYoxVq1YZBw4cMB566CEjKSnJ5W4MXN3EiRONxMRE47333jM+//xz59fZs2edbR5++GGjffv2xtatW42dO3caWVlZRlZWlvP8hdt4hw4dauzevdvYvHmzccMNN1z2Nt5p06YZBw8eNP7whz+E/W28V3LxXUiGwfX3lZKSEiM6OtpYuHCh8dFHHxlr16414uPjjTVr1jjbLF682EhKSjL+53/+x9i7d6/xox/96LK38fbq1csoLi42PvjgA+Pmm292uY23urraSE1NNcaNG2eUl5cbr776qhEfHx/2t/GOHz/e+M53vuO8jfrNN9802rRpY0yfPt3ZhutvLQQYD73wwgtG+/btDZvNZvTr18/YsWNHoIdkKZIu+/XnP//Z2ebcuXPGf/7nfxrXX3+9ER8fb9x9993G559/7tLPp59+agwfPtyIi4sz2rRpY/zmN78xGhoaXNr87W9/M2677TbDZrMZnTp1cvke+JdvBxiuv++sW7fO6NGjhxETE2N07drVWLFihct5h8NhzJ0710hNTTViYmKM73//+8bhw4dd2nz55ZfGfffdZ7Rs2dJISEgwHnjgAePMmTMubfbs2WMMGjTIiImJMb7zne8Yixcv9vl7C3Z2u9149NFHjfbt2xuxsbFGp06djMcee8zldmeuv7VEGMZFjyEEAACwAPbAAAAAyyHAAAAAyyHAAAAAyyHAAAAAyyHAAAAAyyHAAAAAyyHAAAAAyyHAAAAAyyHAAAAAyyHAAAAAyyHAAAAAyyHAAAAAy/n/FfpRxqPg/q0AAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter([v for v in range(len(parentVTDno))],parentVTDno)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "id": "55d64c64-b473-49d0-b863-d4123cbb9b6c",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "for v in range(nVTDs):\n",
    "    if MAP.contains(vtdGeom[v].centroid) and v not in parentVTDno:\n",
    "        print(\"Uhoh,\",v,\"is in the map but not in the parent vtd list\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 154,
   "id": "8bff897e-6fb0-4c18-a201-abc2fce9ba51",
   "metadata": {},
   "outputs": [],
   "source": [
    "outName = \"FrankHamLegislPatchedVTDs\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 155,
   "id": "ecd50c96-51ce-4d83-b0df-e8c645c35815",
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "after above patching, write these contiguous lists to a file, converting to vtd lists\n"
     ]
    },
    {
     "name": "stdin",
     "output_type": "stream",
     "text": [
      "enter 1 if there were NO fragmented VTDs 0\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "working on full or partial VTD master list for unit 0\n",
      "Now converting unit lists to vtd lists for all HDs\n"
     ]
    }
   ],
   "source": [
    "#THIS WORKS FOR BOTH VTD- AND UNIT-BASED (FRAG VTD) -- **NOTE: DOES NOT ADD IN CUT DISTRICTS AND REBALANCE WEIGHTS\n",
    "print(\"after above patching, write these contiguous lists to a file, converting to vtd lists\")\n",
    "noFrag = int(input(\"enter 1 if there were NO fragmented VTDs\"))  #for simple states where units are at least whole vtd's\n",
    "tList = [t for t in range(nHDs)]\n",
    "vtdList = [list() for t in range(nHDs)]\n",
    "unitVTDlist, unitFragVTDlist, unitVTDfrac = [list() for u in range(nUnits)], [list() for u in range(nUnits)], [list() for u in range(nUnits)]\n",
    "unitFullVTDlist, unitPartialVTDlist =       [list() for u in range(nUnits)], [list() for u in range(nUnits)]\n",
    "\n",
    "for u in range(nUnits):\n",
    "    if u %2000 == 0:\n",
    "        print(\"working on full or partial VTD master list for unit\",u)\n",
    "    if allUnits[u] % 1 == 0.5 :\n",
    "        c = int(allUnits[u])\n",
    "        unitVTDlist[u] = countyTractList[c].copy()\n",
    "        unitFullVTDlist[u] = countyTractList[c].copy()\n",
    "    if allUnits[u] % 1 == 0.25 :\n",
    "        CCBnumber = int(allUnits[u])\n",
    "        for c in CCBlist[CCBnumber] :\n",
    "            unitVTDlist[u] += countyTractList[c]\n",
    "            unitFullVTDlist[u] += countyTractList[c]\n",
    "    if allUnits[u] % 1 == 0:\n",
    "        if noFrag == 1:\n",
    "            unitVTDlist[u].append(allUnits[u] )\n",
    "            for i,vv in enumerate(surrounders):\n",
    "                if allUnits[u] == vv:\n",
    "                    unitVTDlist[u].append(surroundedVTDs[i])\n",
    "        else:\n",
    "            unitFragVTDlist[u].append(allUnits[u])\n",
    "            for i,vv in enumerate(surrounders):\n",
    "                if allUnits[u] == vv:\n",
    "                    unitFragVTDlist[u].append(surroundedVTDs[i])\n",
    "            vtdFrac = [0. for V in range(nVTDs)]\n",
    "            for vv in unitFragVTDlist[u]:\n",
    "                V = parentVTDno[vv]\n",
    "                if len(VTDchildren[V]) == 1:  #nonfragmented vtd\n",
    "                    vtdFrac[V] = 1.\n",
    "                else:\n",
    "                    if tractPop[V] > 0:\n",
    "                        vtdFrac[V] += fragVTDgeom[vv].area / vtdGeom[V].area #fragVTDpop[uu] / tractPop[v]  #we overwrote the frag pops earlier; can't use\n",
    "            for v in range(nVTDs):\n",
    "                if vtdFrac[v] > 0.0001:\n",
    "                    if vtdFrac[v] > 0.999:\n",
    "                        unitFullVTDlist[u].append(v)\n",
    "                    else:\n",
    "                        unitPartialVTDlist[u].append(v)\n",
    "                        unitVTDfrac[u].append(vtdFrac[v] )\n",
    "                                    \n",
    "HDpartialVTDlist, HDfullVTDlist, HDvtdFrac = [list() for t in range(nHDs)] ,[list() for t in range(nHDs)],[list() for t in range(nHDs)]               \n",
    "print(\"Now converting unit lists to vtd lists for all HDs\")\n",
    "if noFrag == 1:\n",
    "    for t in popHDlist:\n",
    "        for u in HDunitList[t]:\n",
    "            vtdList[t] += unitVTDlist[u]\n",
    "    outDF = pd.DataFrame( {\"tract\":tList,\"HDweight\":HDweight,\"HDvPop\":HDvPop,\"HDvtdList\":vtdList,\"partials\":HDpartialVTDlist,\n",
    "                           \"HDvtdFrac\":HDvtdFrac,\"centroid x\":hdCPx, \"centroid y\":hdCPy} )\n",
    "else:\n",
    "    for t in popHDlist:\n",
    "        partialList, partialFrac = list(), list()  #for many HDs, we'll recover whole VTDs when aggregating units\n",
    "        for u in HDunitList[t]:\n",
    "            HDfullVTDlist[t] +=   unitFullVTDlist[u] \n",
    "            partialList +=         unitPartialVTDlist[u]\n",
    "            partialFrac +=          unitVTDfrac[u]\n",
    "        partialSet = set(partialList)  #non-duplicated set of partials across the HD, prepping to aggregate where possible\n",
    "        partialSetFrac, partialSetList = [0. for v in partialSet], list(partialSet)\n",
    "        for i,v in enumerate(partialList):\n",
    "            partialSetFrac[partialSetList.index(v)] += partialFrac[i]\n",
    "        for i,v in enumerate(partialSetList):\n",
    "            if partialSetFrac[i] > 0.999:  #the district has all the fragments of the original VTD contained in the HD's units\n",
    "                HDfullVTDlist[t].append(v)\n",
    "            else:\n",
    "                HDpartialVTDlist[t].append(v)\n",
    "                HDvtdFrac[t].append(      r5(partialSetFrac[i]) )  #save the aggregated fraction of this VTD across all units\n",
    "    outDF = pd.DataFrame( {\"tract\":tList,\"HDweight\":HDweight,\"HDvPop\":HDvPop,\"HDvtdList\":HDfullVTDlist,\"partials\":HDpartialVTDlist,\n",
    "                           \"HDvtdFrac\":HDvtdFrac,\"centroid x\":hdCPx, \"centroid y\":hdCPy} )\n",
    "outname = STATE+str(int(nHDs))+outName+\".csv\"   #patchDown, PatchUp, PatchBoth\n",
    "outpath = \"2024state_HD_output/\"+outname\n",
    "outDF.to_csv(outpath)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ef27af54-daf5-4e8f-9230-bce5b0b1e705",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1feff378-e3c4-44c4-ac3e-7c0e6ad3ed57",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 228,
   "id": "cad69191-9aa9-4f5d-997d-3343cc856eac",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "now snap to munis.  Form munis from past unit topologies, as done for muniSnap99\n"
     ]
    }
   ],
   "source": [
    "print(\"now snap to munis.  Form munis from past unit topologies, as done for muniSnap99\")\n",
    "infile = \"./state_map_files/OH99muni-unitTopologies_03Nov24.csv\"\n",
    "topologyDF = pd.read_csv(infile)\n",
    "muniPop = topologyDF[\"unitPop\"]\n",
    "nListString = topologyDF[\"unitNbrs\"]\n",
    "muniVTDlistString = topologyDF[\"unitVTDlist\"]\n",
    "muniCountyNo = topologyDF[\"unitCountyNo\"]\n",
    "muniCPx = topologyDF[\"centroid x\"]\n",
    "muniCPy = topologyDF[\"centroid y\"]\n",
    "nMunis = len(muniPop)\n",
    "muniNbrs = [ast.literal_eval(nListString[m]) for m in range(nMunis)]\n",
    "muniVTDlist = [ast.literal_eval(muniVTDlistString[m]) for m in range(nMunis)]\n",
    "borderUnits = list()\n",
    "#onBorder = topologyDF[\"onBorder\"]  ## we will define on-border later for each county\n",
    "#for m in range(nMunis):\n",
    "#    if onBorder[m] == 1:\n",
    "#        borderUnits.append(m)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 229,
   "id": "eecf9bff-b924-43d4-9656-478afe399320",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "all units rebuilt in counties [24, 30] . Now build neighbor lists\n"
     ]
    }
   ],
   "source": [
    "unitPop, unitGeom,unitCP, unitVTDlist,unitCountyNo, unitMuniNo = list(), list(),list(),list(), list(), list()\n",
    "unitNbrs = list()\n",
    "for m in range(nMunis):\n",
    "    if muniCountyNo[m] in liveCountyList:\n",
    "        geo = tractGeom[muniVTDlist[m][0]] \n",
    "        for v in muniVTDlist[m]:\n",
    "            geo = geo.union(tractGeom[v])\n",
    "        unitGeom.append(geo)\n",
    "        unitPop.append(muniPop[m])\n",
    "        unitCP.append(Point(muniCPx[m], muniCPy[m]))\n",
    "        unitVTDlist.append(muniVTDlist[m])\n",
    "        unitCountyNo.append(muniCountyNo[m])\n",
    "        unitMuniNo.append(m)\n",
    "print(\"all units rebuilt in counties\",liveCountyList,\". Now build neighbor lists\")\n",
    "for m in range(nMunis):\n",
    "    if m in unitMuniNo:\n",
    "        nbrs = list()\n",
    "        for mm in muniNbrs[m]:\n",
    "            if mm in unitMuniNo:  #excluding cross-county neighbors\n",
    "                nbrs.append(unitMuniNo.index(mm))\n",
    "        unitNbrs.append(nbrs)\n",
    "nUnits = len(unitPop)        "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 230,
   "id": "95b707b7-d2cf-4608-bff4-621258e6a614",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0 609 295 904 904\n"
     ]
    }
   ],
   "source": [
    "print(len(countyUnitList[0]),len(countyUnitList[24]), len(countyUnitList[30]), len(unitMuniNo) , len(unitNbrs) )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 231,
   "id": "44f03543-2dbd-41c0-8932-3dba9a6c276b",
   "metadata": {},
   "outputs": [],
   "source": [
    "countyUnitList = [list() for c in range(nCounties)]\n",
    "for m in range(nMunis):\n",
    "    if m in unitMuniNo:\n",
    "        countyUnitList[muniCountyNo[m]].append(unitMuniNo.index(m))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 232,
   "id": "254a70cd-fa47-4cb7-af6d-74f51587bb0e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "plotting the muni-unit geoms\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjUAAAGdCAYAAADqsoKGAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOydd5gdZfXHP9Nv316yJb1sem8QkhBCCL0KiIAgIigogj9EFBWwgKiACIii9N4JnRBIICG997LJZnvfvb1M+/1xN7tZdlMJJsL9PM997s7MO++8d+7eme+cc95zBNu2bVKkSJEiRYoUKf7HEY/2AFKkSJEiRYoUKY4EKVGTIkWKFClSpPhakBI1KVKkSJEiRYqvBSlRkyJFihQpUqT4WpASNSlSpEiRIkWKrwUpUZMiRYoUKVKk+FqQEjUpUqRIkSJFiq8FKVGTIkWKFClSpPhaIB/tAfy3sCyL6upqvF4vgiAc7eGkSJEiRYoUKQ4C27YJBoMUFBQgivu3xXxjRE11dTXFxcVHexgpUqRIkSJFisOgoqKCoqKi/bb5xogar9cLJE+Kz+c7yqNJkSJFihQpUhwMgUCA4uLi9vv4/vjGiJo9Liefz5cSNSlSpEiRIsX/GAcTOpIKFE6RIkWKFClSfC1IiZoUKVKkSJEixdeClKhJkSJFihQpUnwt+FKi5u6770YQBH7605+2r4vFYlx33XVkZWXh8Xg4//zzqaur228/r732GrNmzSIrKwtBEFizZk2XNtOnT0cQhE6va6+99ssMP0WKFClSpEjxNeKwRc3y5cv55z//yYgRIzqtv/HGG3nrrbd4+eWXWbBgAdXV1Zx33nn77SscDjNlyhT+9Kc/7bfd1VdfTU1NTfvrnnvuOdzhp0iRIkWKFCm+ZhzW7KdQKMR3vvMdHn30UX7/+9+3r/f7/fznP//hueeeY8aMGQA8/vjjDB48mCVLljBp0qRu+7vssssAKCsr2+9xXS4X+fn5hzPkFClSpEiRIsXXnMOy1Fx33XWcfvrpzJw5s9P6lStXout6p/UlJSX07NmTxYsXf7mRAs8++yzZ2dkMGzaMW2+9lUgkss+28XicQCDQ6ZUiRYoUKVKk+PpyyJaaF154gVWrVrF8+fIu22pra1FVlfT09E7r8/LyqK2tPexBAlxyySX06tWLgoIC1q1bxy233MLWrVt57bXXum1/1113cccdd3ypY6ZIkSJFihQp/nc4JFFTUVHBDTfcwNy5c3E4HF/VmLrlBz/4Qfvfw4cPp0ePHpx00kmUlpbSr1+/Lu1vvfVWbrrppvblPRkJU6RIkSJFihRfTw7J/bRy5Urq6+sZM2YMsiwjyzILFizggQceQJZl8vLySCQStLa2dtqvrq7uiMfCTJw4EYAdO3Z0u13TtPbswakswilSpEiRIsXXn0Oy1Jx00kmsX7++07orr7ySkpISbrnlFoqLi1EUhXnz5nH++ecDsHXrVsrLy5k8efKRGzW0T/vu0aPHEe03RYoUKVKkSPG/ySGJGq/Xy7Bhwzqtc7vdZGVlta+/6qqruOmmm8jMzMTn8/HjH/+YyZMnd5r5VFJSwl133cW5554LQHNzM+Xl5VRXVwNJIQSQn59Pfn4+paWlPPfcc5x22mlkZWWxbt06brzxRqZOndplSnmKFClSpEiR4pvJES9oed999yGKIueffz7xeJxTTjmFhx9+uFObrVu34vf725fnzJnDlVde2b588cUXA/Db3/6W22+/HVVV+eijj7j//vsJh8MUFxdz/vnnc9tttx3p4ac4ioTiBpUtEXI8GhkuFVE8cPGyFClSpEiRYg+Cbdv20R7Ef4NAIEBaWhp+vz8VX3OMctNLa3htVRUAiiSQ7dHI9WrkeB3k+pJ/ezQZhyLhVKTkuyrikCUcase6fJ8Dpyod5U+TIkWKFCmOBIdy/z7ilpoUKQ6XSNxkRFEaP5ren4ZgjPpgnPpAnPpgjLUVrTQE44TjBlHdxNqPFBcF6J3lxrRtHLKEzynjcyj4nAo+h9z2rrSvd6oSfbLdaLKELAkokogiCThkKWUtSpEiRYr/IVKiJsUxgyBAmlNh9rD9z5SzbRvdtInqJnHdJKqbxHSLqG4SSRhUNEfYVB1AlkRMyyYQ0wlEDapao2yO6gRjBoGoTjBuHHA8Hi0pfLwOue2VFEbe9nXJd4ci4VBENDn57lAkNDn57pAlNEVsf9dkEUFIiaUUKVKkONKkRE2KY4aDvc8LgoAqC6iyCE6la4OuaYu6xbRsQjGDHQ1BIgkTw7TRTQvDSr6H4ybBWFIE7XkPxAxq/DG21YUItK0LxQ3M/ZmOumGP4GkXPl0EUcffjjZB5JJsjm99g/E9fYiqCxQXKM5O7xEBmjxZSJKKKIhkObNQxG7OUYoUKVJ8DUmJmhTHDO+u/3JZpw8VSRRIcymM7ZX5pfqxbRvDsom1WYziRvI9ppvEDYu4bhIzTOK61fGum8QMq33dnrYxvWN7fWOYsD9OAogL0E/fyE3CPbAVEESwrS5jcQH/ykjjP+lp7etkQcYhO9AkjZAeItuZTTARJJAI0MvXi4EZA3FIDtRmlYJwAf3y+rFu3Try8/MZMGAAT9T56d1/AMOz0nCIIpoooIkiDlHovCwll6WUFSpFihRHiZSoSXHMkOZU8Ef1oz2MQ0YQBJS2WBzvEUy0veKXn5Jvae3LTjEEKgR/ugtvWgaYOugR0KPt7zWPzWSUs4DbJt7I0tqlTCmcQsJMEDWi7GzdyRulbxCIBxicNZhltctwyS5CiRCNZiPabg2aoXpbMrWC3+9n69atZAPv+IP8pUfvgxq3LJAUOUYNSt29FGgyHsVNvSFhZ15Mr4zhOCQR5x5hJIm4RBHHXsJoz99OUewQUFJyvWonSCNAmjMLUXSkXHkpUqRoJyVqUhwzTB2YQ1MofrSHccyQYcHGHAXf0Bws3WTIEj+2reBNb7MsyWry5Uxv3ycqyXgkjeklF3FRyUVd+nxr51sUe4v5zyn/6bItOD3IH+7/A6hw98/uBsA0TX73u99xek46Lx0/lJhlEzMt4pZF3LKJWRYxy+66bFrM3b2ebYlqRhafg1vWeHHbGyTiT9Mr4x5adYMac097i4iZ3G/PsnkAb16eXcO9XA8ISJKT+Z8kk3327l1ByeAqRNGBJDmpbLV4dNU4DHki43tn4tIk3KqMS5Vwa23vbcsOVcJpGxSZIZxeD6LLheB0IoiHVfc3RYoUR4GUqElxzCAKYH0zMgwcEMuyEIGhDTrW/Cp2jc/BNciNvVNjf3YJARvR2LcwzHHmsDu4u9ttXqeXIeOHsHPhTrZWbWVQ4SASZtLFZQQDOG2bHId60J9h7oaFAPxm0m04ZY2o0o85G/7Ib/t46OfN3e+++l4CJ7q34DEtnt3xMS8FCikZ/FewophmlLKyWsp2Jejbty+ZGb0xrRiWGUPQ5zEhX+TFbcMRBIFIwiAcTwaURxJml+PevOI5ZlSu6rROcDgQXS5Ep5M6O8Br3+qBv28OTtmJU3biUlyd/nbJrnZ3n960ndPTh6JoPtgTB6W6O97FVOqBFCmOJClRk+KYQRQEUpomiSiKhM7vR0t1iB6L64i3xgk1NJPO/oN+SyUbb8tOFu16meP7fKvL9kHpJSyons+Ff76atFwXETPEaX1P5zvTzwNg9oTZPLTwIRZuWMigwkHY2FgIxNat4vd+P3dfednBfwghOdYJz45jSv8fsqFxDQCvlS3h5uFn7XdXRRRQRAkvXW/6W3xuXgxKODOmk+lIB+CK78Lq1d+l1b+SxqZcJk38iOqa55GrP6RXusnGO2d36ceykjPowgmDWMIiohtsuOhBdFWlz/33YUWiWNEIdiSCFY0Sb24k86lnYbdFxpCBRI0oTbEmKkOVRI0oUSNKWA8T0SMkrET7cXrU1DExtg+hKTu+IHRcoLiJqj42O4sxFTe67KSnbFKkiN0IIxeonq5iKSWYUnxDSYmaFMcMAqREzV4MH18IwM7FdQzZHkSRwxiSggTEGup596GVFBQYeF27kfgchyedEUEv2yQnyzavJV+eiNPpwO1womkqDkVjmvdkVsbXUO+uIJDQqFJ3smnnGsb3G8XA4r7k+nKJa3EqKyqxLAuXqnLhNdfw4qOPcqh5Oi9UTkF7ci6GDNsLHuT8bTYxFfrddQtvj3oJa9RozvrFzw75vGRoLgBeqm7g9t1lXJyfyX0lxbT6V2BZMaLR3XwyfyBgo0lQ5FrZbT8V21ZTO/dvCGYCW1LJa1nFiQVN1Nf7UJwJHDNO79S+ZtcGeOpZvjXuSiZNu26/Y7Rsi1FPjmSGms2EH8zpiHtKhL/wHmmLh0r+beth6nQ433s2pXJHAHtBopllK65D1kPJfe2uVqYuSNoXRE9SMCXXuTv+Vtra7C2Y9hZIX1ynuCDlkktxjJISNSmOGQRBSLmfumF7loonoNPHjtEiavQCNr76ITW1BdTUasAQRAZiIQMXAKDNgffndFSwb3bW8NKou8EGp+BhWsYM7vj2z6lvaeKkOdP5ZNNCBhb3BcCv+HFUOrjzzjvJy8vjhz/8IU+4PbjKd/KXdz9EkRVUVUGVZTRVRVMUNFnGocg4ZBmHqlDd3MrmhcvJGnISg3ZXcM6SbZ0+U781K4lu3gCHI2oUJ9qHVdyT54SRmbxQ28xt/Qqw7b2DzG2czj5Eo7uANneeKJJoKkf9+3AAegEaOfjlTGQ7QaNnIP7LzsC19U/4n3oYx+TO1p1dyz8mA3Bl5x1wjKZlYgswPWMIQmafg/pcumVTvGBtp3V5qkxdwqBazWT595czOd2TVP5mIiluuoikcGfBlAjtJZ7atiUiEG0Bf1Vb23CHuEqEgYP4DcrONqHTjVDa9h6oXhhzOWge0LxJ0dT+7ulY3rNOcR58TocUKfZDStSkOGYQhYO6nH7jOOXmZDHYlX97CGfQA0A8YuBTGrn47tP54KnX2b22AICRs6qJam7EjFx0wyKe0Nn5UQBvIJNTe59K1Igyv3I+ZbHkzd6hJmdXlbXupqK+BrfDSYOjkXJHOZNbJ1NXV8ftt9+Op20soWWfH9LYm7KzmfXggwRDYaLhCFm52WwbPASAnSeezJjDOB85zjQEuwqrNgqDTPJ8GpmKBEhA0oKhqrkcN/kj3pl3Ig6hnHA8hNfpw19fTk5bP8tH/YFhJ3+XfLe3U/+lv/szdryzu8g0DTJ+8w8AApW7ePeCE3CfdgrTvtd9/Tl/rAWAhKx1u707ZAF+3DOX9xv9FDlUclWFiGkRMk0ipkWO2na5FgSQteTL9eXSEXTBtjtblfYrmvYhpAASQdgxF+KhpLCKB9nvr1uQ2oVOtZLBT/r/DCl/KB5FwSNJeCQRryzhbnv3SGJyvSzibtvukZPr3JKImBJI31hSoibFMYMoCIecxO4bRSLMEGMzc393BoZ/AgF9CjWtJjMuPYPtw1ciCALDJn0bUeocS/GXLU9hlbq5Z9o9AFzz1E/ZYWwBwOf20Fcfwtu8xNvvvZTcoe0ef9vxt7F59WYcDgeJRIL6+nry8vKwLIvm5mYsIBwMImsalm1j6TrYNlpGFiVTp1H3wXvUxqLYto3X48brcbNwzrtktY3L3bfvYZ2GTEdHDp6fiW5uPr4EgJEj/sX6DddhmmFaEj35cOVLRMXJOOxyGgONeJ0+cgZPYZM2Al10MP6c67v03XrfzSRabHJnzOq0vmzj4uT7JVMwly2m34ZGahtfwbjs58hKN8HT8QAAWa6crtv2gSAI/KpfAb/qV3DQ+xxxBKHN6uICd/aR69e228RPqE3oBDsLnniwfdv28u0sdPShfyRCscdLfdwgaJqETJOQYRE0zQPOjnNJYofwkUTccsffU7eFOUFU8bpURFVEUKX2l6iKCJqEoEgImtR5e6pkyv8EKVGT4pjBsm1S1419Mzb8KQBTjSV8JvcC4PPF1Vx8QQkjp5y0z/3K66rJEDtcJoMzh7C48RMCkRA+l4dHzn2AZdvWENWjRPUYr5a/xG5xO8ubVvGT7+07dsSyLJ5//nkqKioQJQmHx4NlWbS2NBHdvIHROTm8V1FOPBrF4UrGwfhffJEsoPSnP+P0a646rPOQqaURn5rLZY4GpmU+wcJFCzHNEIYRbG/jZgX4V5DRtlzVWEqfvL7YlkWP+C625p7Wpd/g03+h5l9vkT6hCM8lN3ba9sGLd3MiIGRn0e+55Kyu3No4H97+fU77w1Nd+goHawDwufY/y+sbgyC0uaI87aL5i9iWxdtL3+TOHhMA+Hu+xeh+XdOD27ZNzLIJmSZh0yJkmIRMK/ky2ta1CaD2Nm3b6iMJTljaTMIlE1FErISFnTA5oEoCkMXOIkeTEJU2EaRKiKqEsNf29rbaF5b33leVEORUfNKRJCVqUhwzmLaNlFI1+0SXBSoLHCzPOBfdUQJvgqZ1PV9mIs66J19l8wYRfzyTQUxAznyLcKgOtyePcb1H8Z8mixXb1jJj1PH0yMrj7MmntO8/rfo4zp57Om9Xvc1P2LeoEUWR73znO13WP/LII2zbtg2prZpuPBhsFzXeqkrWnHku53/vu4d9HiRRwuWMM9X+JcHmpJDRtPxOosbrfoAaowJP/M8AVDWsAk4m0NpEBkHUPpM79ZnYsITqP/0b76B08v/zbpfcNGmFfYCd9HrgTeryVMQrLyb66hv0fG05m18dTPS+Wxlz6uXt7f2hNlHj2X8dsxQd/G3hHO42+3CSvZO/ZUuM7jej23aCIOCUBJySyMHbwZI0NEeIU0f1yYVMmdyzfb1tJMXNHpGz59W+HDe72W5h7WkXTGDoVnu7PW0xumb97oIkdBY9DhlxjxDS2kSRtkc0JYXTnu3tbfYWU5qU7PMb6oJLiZoUxwyWZad84fthXYmP1kwFn/kJQmIprfyF6neqeHTBes748Qh69BqIbVnM/d2z7GwoZlBBBcN6Cuyu3sLx8ZeJ3P80/u/OYdyAsYjLJVaWr2HGqOPZuaaUz19ZTTQEviyJ036UvJnUUHlY47zqqqv485//zOZA0gVjR6Pt25zBADnLllA6YgSGKBF1OIhrDhKaRkJzoDsc6A4npqZhOp2YDie20wFp6Zz142tJ87gB8BDDEUlQ4I9hiWBIu0lkqjTK1zBieRruJg/RwnKMocnjjt75ADXzHyWBRBowaumNsOEPyRlCioPSf0TAEmjKn0HLj24jK0tCcLuR3G5Ej5tTvBPZNTuC5dIYfd4VOIt6sam4D9J1dwAgyp2n2vvDdQCkeY+iK+l/CMs0eTLq5Tts4a+zL/7KjhMMJlABp6ezy1CQRQRZRHQd2ePZpo2t7yWI4mZyOd6NgIonhZIdN7HiBnbcxGjR9xJUJnbcwtbNAwcfikJS/OxlKerkXttjWdpLEIndWZW0vdYrEoJ07F+fU6ImxTGDYdnI/wM/mqPFJm007liU8077EIB05W2aqwPsXJLPzvWb6dFrINWffUZpQ29mnRJmwLnfA2CYabL2oVcY3VzOqi1vUlB8HLl6IUu3Lefxm18gHMhGEDQcrhgNlU7e+OtcGHT441QUhYEDB7Jhw4bkijarh2VZOCNhPOEQADtOno1WVIQdjWLHohCJIEdjKLEoYiyG1NqCHIuhRCNkNtTxyeaNSCNHoeRl8NiuvzPWrOp03Pf6nMiF372FgF1O4IPdRLYoqG2ixtSgrPB0nJEaerXUtuUOEJJxHNFmIj1H4yrbhbDwQwQzjt/uWsF9T7B09Wvz0SWJF2edhTzrDHaOy6QwN4enln6CL6zjwGbd+t149ALcMRHL34zg9ICifGOfng/E8h0rqFGzuKjA/ZUeJxxKihqXp5s4qK8AQRIQJBkccjcZlw4P27ax9Q4LUidxFDfbrUd2wmoTSmantlbEwG6Nd96WsLD1g7AqyUKHxag7AaRJeI4vRMk9wurwEEiJmhTHDMmYmtRFf1+ka5VYdBSXmjjrDNYt+pidS8AyLWzLYtX7O8nQHPQ/u6NEQuPvj2O0Xc5fM9K57vjkbJ28cCa73ZWE/Q76jtKZ+b1ZqA6Nf9/0MvEoZNm5NAn11PvryU079LiQM888k53LlhFxufAVFQFJd1XZNT/C2LkTW5aZ+stbyMrOOkBPoCd0Vh4/hUHLFhNduwpnPI4rNw5f8E7MuPgFAHwn9sR3Yk+WvX0je25dkpLF5Kv/Bo/NhhYQT/kDHNcRKNzw68eIjRA583ff4ZkfvY5LjHLO70/FDAawAgHM1lZMvx/THyAWCPAT08GiUeORjDimpEBzUrhJO4OcNu8jfr36HQAq/72X1UGwEcTkRB9RFsj/6ZV4L//5IZ/bryPzq8rIMvIZ13/KV3qcaDhBBuD9L4marwJBSLqrUKUOpX0EsC27q9Wo3UL0BZdbfK92bW43K5AgusuPlOFIiZoUKQBMKxVTsz9ccmuXdVuXVgJFhFtivHf7U5S39OLU02PtMSGR5+4k197C/FgfnvGYLHz0RB465ykm9SthbfMavv3nyWSldQQRO9wi/oYMBpUdz+d9XuephU/xf6f/3yGPVdM0Tn/rbXRFQbz9dtZ8soCqvz+EHAox9Jmn6JN78DNrFFVh2PxP8AdD9M5MZ8tJE6A+WaRc2Cv0pWr7WtwZOeT26I0gijRLp5HGswBkVyeLdFKenMVEwSio2wKuDEJNQXY35jOqpAFJU+jfT2JdWT54fDjyOgu6eCzOD195j2W5BfxbCHPGyceTMA2WNpVz7epWErkOZrjDACSuv5I+zjh2PIEdj2EnYu1/17++lNjqFXgvJwXQagpkmeEuM/eONPFIMtOzz3PwU+2/KQiigOA4fKuSbdtU/WohouPoyoqUqElxzGBaIKUsNfukMdYLSep8MZ713VkseOUjSpcUIGBy8swgfc88u327tOZRomI+0/64isdWvMsNK37JH1+/ge+dejv/XPICC9fP5ewpl7a3P+UHJzDvsYVMEPrxOfB+/dv8H4cuaizLIqGqOOJxVg8fiUNP0BcwRInGU0+lLC2daEYm2ddfx7CJ43E4NMRustTWllfw+ZPPkvnh++Q11BGAdltVtEnFlZNgh9iH/tYu+r6SnIa9dPCtTLzoF3z/1DuBO4n+Nod1JT9lIiRVkG3BEx3Zgj3AZM+puHpdR3B3LbkleVjlCT781Sucfn/HuYnGYlz2ygcszS3gEc3g9GnHY1gWFcE4A5yFOI1WWhwSLn8LZYUDOfX6fVthopsm0/jeOkKrRuAq6Un693+K6M1A8GUi5ff6xhXRHO9z8XikgFUV2xlTPOArO44eNohKUHiUb7xfR+y4CRaIzpSoSZECSLqfjralZtUHu4mFdbIKPeQ3rCSydAlZ3/8+aq9eR3VcAKoYxqfs5rOFExk16im8nkGkZeVz1tXfJvTbAUSVTHIuWNHe3o6GUJ0BIj3ORhBFRk84gzNWv8SbjjWM6DcB9TORZRWLOZuOG3dOcS4X/zZZB+r+J/9CjZxg0rufoQjJi4UKqELypQkCqiigiQKaKOIQBRyiiEOSwLaInnoGPTWNguxszGiM9IH9CTlc+FesQPL7yVizCu8Pr2FPec2ErJBQVXRFwVBUDEUhq6Ge3pJI1ZRp2BMmYBoG4cWLGbblIxRXMu7FP/Z6SnsOo+Gzx5hU/yL2Fwp6BgUPdqQ1ufCzbbD1XYi1QsyfzI+y7F+4pFY+eF+H9ze177e3vo7GYlz+ygcsze3RJmiOA+Bbn21h8Z46Ty6REwUVR00Fid77vzEXvrSA5j9cR/0LC4nVldK84Mft27xDMih8ZeE3SticPepEHvxoLnds0XijqP9XFntkRnRCyjd3ZtBXiRVJ/h5ToiZFijZMy0aVjt6FPNQSZ/Hrpe3Lp9b9h/jmzWglJWQeA6ImYnrx0Ugi0cSyZafhcCRrQ8XjtUxxNBPNd3Rqb7bUIwsgpHdMKx7VcxJP169md+kqepo5bA5s3efx/NnXg6DSTwQd0G2IAgEbdFtAR8CwBHRBwBAEDEHEFJMvEOGUC7jep3D12KGdO56dzKkTDARZ8eE8jEgUMx7HjMew4gmsWAw7kcCOxwllZzPl+1cwJr0j4R5XfZezH3qVX9bdw0S2MHb5z9i+uj+TjGRZiInf7pzlNyJ6kiIGwJMDYztPJ4++/zgZrRsZ5P0cIQGCpJA3qYShVyTFXiQa5bLXPmTZFwQNQGk4Bg6By90+zumZxRBNoLKxkrpTz9jneQUQFJWs2x8l48YmEms/wwoHsYJ+EpvXUff8Z7T+9Wdk3Hzffvv4OiFpbn6ZHuPSRG+Wl29jQq8vEam+P6IGEfWbIxb/m1jRlKhJkaITR9tSU1PaCkBGvovW+mjH09wxlOW4Kj6T86bezJYttxEKbQTA7R5EzcA0em3chv8fJQiTr8M36seE33+VNMA2Oy7iWRmFUA9XfHw1rS4bR1xsr4v0RS6V+vOU5OOVE0ejygd/qbAsi48aW7l8YznZOfvOJOL1eTnxgnMOut+9qRdzuSr9bv6d/TGE6xH0CCuM3hi+Xkz6QnXqqORFjrfusy/TLWPXWBQue7Zj5Xx4d+N6hv34e5y4pRI9uwePOk1mn9AhaObsbKBeE5gtO7lnYjJJ3PI3P8KDTcHT/6DxuxeRXbT/OlFiWhaOqed0WhfbcRJ1T7yHFQwhZaQjOJ2IDheC0402YQZKn6Hdd/Y/zozxZ+P8dC2rdpd+ZaJGiJlEv2GipqJ8J6UrNiBpMpKqIGsKiqaiOjQUzYHT6cThcpGVldvtdeBgaRc1rpSoSZECSFpqxKMoavqNyaXPyDp2rW0EILppMwKAdRAVkf8L5Dt30Wp68bj7M27sC503ToDW/FtJn/cwgUV/g1E/Rog3AaAM6Ug017ffGGYuLSRsx3BVJ5AbXTSuXknu2PFdjjcpP5fHWkyW7yrj+AH9D3qcoigSS5450pWul5i6mloqt5UiaxqqQyMrP4/c/EObYZUwLBRFZNLlvztg27jiQ9ED3W+0bRTVYP251zP8yZvxt4bYtXYL0i030OetZ5lw2hmgqPzainLScRMBqAjGeGRzFY+3+HGZNvce15H1dvjJx7Pwz8UUNlagup2H9Jn2kHf/M8TPm0X9y5+B3fn34O77JD3fXbGPPf+3EVUnmWaIVuOr+73JMZOI45slara+t4ySXYVfWGsCkbYXxIGPhy9k5ncuOOzjpCw1KVJ8AdOykY+iqBFFgZOvGsrLv1tMS0OChOpFSwSou+tu1D598EydetTGBlC4+gb6tfanbPEcbNEEycIWLZD2vIajiYX4GqqI33sx7tAqAMpeWMLWd9aiOAwkWeFs9SxkWcYUoyyuWcFTTz9JfihKjsuJQ9XQVBWnptLD5YDmIJ9XVB+SqAGoiycrZmconW8g8557iYI7f8veEz7rBYHMNauRtYOfkRKPJnC7lAM3BHQlDW+kvNttkUgQl6CjeLLwuDQ8Lo3CguOxZy+nfGsZUxcs59OBA/md6OR3n65LptMXAUEgw4Q5xw0m09kxDofLiSHJlA4ax+AM30F/nr2RsnrQZ8F6AOx4DCvsxw4Hqb7mYoSj6J79b5BpRWg+QprmD2tfZ2vrTtK0dM7qNYmTewxFiZsY6Qf3f/N1QYxCaUY1x//sfOKxKJFomHgsSiwaJR6LoccSiG82IiS+nEXabhM1Qmr2U4oUScxjIKOwokpceOMQth93fKf1LS+8eNRFjadhNIZkwMA6MOzky7LBAAwBLAg7jkcwtiFGq7CENHQji01KFmuMarTmBKYgYEkS1h4zc1E/lOZ66h6+h7pujpl14Y/5AIubD3GsK5vLAZkl626gUjFAULBtiaGln9J6IVhbc0i7+SFabrwRdziEpB583hDDsvCVV2GoByeCTC0NZzDY7bZAXTkuQE3vnPlXEAR6lfThpZI+rKgL8G5FE80JnYhh45ZFLuufx5jcrqJl96ZSetXtovZbRyYrrqA5kDQHZOZh6yaS9/CsP/8rmIJ0xCyjz6+/F6wwgq0zfyv8Ztp/6Bu3sL5hM5+kuICp2siyjOzx4vZ0Lr5l2zab3/wAxfXlprlbUQPBcfQLf36zvt0UxzTJ2k9HexRghUJd1oXmz8e27aM+ayLucjDo4v3dMC/ptKQAPPQ8mU1efvLHn7WvN3UdIxrlzpdeo9Xp5nv/9wuMhE4sHieeSBDXdRKJOJLfYqdrHxUI98NorZk3yCVPEVEEAewIgp0gMMiFnB0id3BPeg8pQWisp/KaHx3SeV3x2WKqPTkUB7uTYV0J2k4mWRU0rXof2ZWG7M5A9qQju9OJ1O8CQMvps8/9x+X5GJd3cFaXDU+/TJEoM/bbZx1U+0PBjOpo7qOX1OyrxjBNdii5XKJEjkyHts7EPt9l6e6XEMwAdy27mzmhGwlEjw138n8LVZcI+7pmyN5DOBHGbToJer5cjiArahx11xOkRE2KYwjrGEm+ZzY3d11pWRg1NSgFR6eWTzxmsCpDoi5NpmpDDf1zvRRmuZDaVGAoqlPZFEZrq/i7qymMYdqM7Z2BbhjIXwielRQFSVHoM3AglR+XkeFNozgjrctx39qwi7ca/AQMA98hBAtntTU9Y+wDFLWJovDudawtvZxoBhQMvwKHIqPLMrp9cGbv7WvXs+P+B4i1tsKgK6jw7j8Idw+LqgVOViBrzkVdtvVte/ekHXwywH1hhCPkv/MSu0Ycx8is9C/d3xcxYyai79AF5v8KZXU7SYgKJRlHqLK5baIIMmeVXMdbWx/FNJM1yAbsDLc3mf/6HNzrTBKKgTHUSVavHtR9uh1bBTQRwSGj+hxMmnUyipJ0W0WjETavWY2kyDhcLhwuJy63hzRfBuohuFD/W2i6Stix7xIIzf5GJEScni9XosKK6ilRkyLF3pjHSJkEbcAAMr/7XeTcHLKuuoqmJ57AjkaRs7/8je9waYgl+MGEtqf0hjpoqEOybJwWyDYEZLC6OXeuujr65xVQonX/U580oB+vfAyLduzk4vGju2w/MdPHWw1+3m0IcHGPzIMer20nY2oQkjeC+pWvsLHqVsiCIdl3kDVsNgARl5tISyu6ZaN8QdDW1dSye9NWBo4ZSVNdPcZFF9IbKB04mLNKP2NOvxO48bYn+PnVs+jRa99ic4kwjssTPbn3rN5Y0QBWNIgVC2LFQ6wpreKDSBF/yvry3+2Gn92KKxGl13lnfum+usOK20i+rsLz68KWunIgi0EF/Q7Y9qCwTRRJ4Y/jLmFZ7RJao7UAlA1Po6itSdYqiQw9gybDT3hDjLqy7fSsy6bR6UczFFyGhsd0sbPPFgYNGQ7A0gffon9TAZBoe7USBzaqLYy+M2mhi77/Pv6FIbK/P4rI3CUYQZNo3MIefzwZIwqpen83sk+j91l9up1x1BprRZM0HLLjS1uHnYaK6Ni3pabikWX0ogeeL/m/lbLUpEjxBUyLY8JSI7rd5N36i/blrCuuOOh9N9cEuOTRJbhUmR9M7ct3j+t9RMZUk0iKhCtcXq4szGJ7Q4hP6v04BIE0RSZXk+mV5sSwbGwbema6kASBZzZV88+8LFrU7k3uQ/JyiKkOVn38EeV1dSiSjCzL2Ni4HQ4sUaJ3YxPzaxydRE3CsiiLJiiLxqmIJaiMJaiJ6zTrBmHTYmsomRvH1/Z0u3PzX5E0hXHT3sKVm7xpWbaNLskMf+k5Nr32MrosY0oyhiwjmwa+UBAvULPXeLdMPZFz//Uws3WDgQ+8zMM1Xt5+aDlTaCbbpeBxqrhVEZci4tFk3E4VW7epJIfsSed1+fz/euQN3t8Jf9e+fC2gBs1LETD83Nlfuq8vYkcjWLqAlHnwwvJ/ja3+VrJ0iZzMkYfdR0s8wk1L/tm2ZKCIyVtcRA9gGCFMLFp3r6S2JpP8Hklps6VvNWLYZmBdIQShNLOaaT9PWvXWrliK55UEDldHLJM33Dkf1B5yEhkA2AmdpvluwE3tIzVAMseVQITgvB3EW8G1KTkzMTAii/S+6Z36WfjxhxR/qCEhsi23ihk37dvd/Nl776FXhtB8LgSHhORUkJwqhf1606OgGMuycJkOBCWOruvt1qY96IkEvSI9qHI1MG7opAOd3v2SEjUpUnwB6xgIFP6yvLW2mpaITktE5863N3H55F5HJA4nkkiKkn5eJ4OK0lkhmjzb2ohPFtl2wpB97ndHYRrvv/I+wj5cPKIo4hpQQmT7ZkIrlyLu1W6PE242sLmplr7BBIZto9s2+3IYCYAogGkn3V1eScRobSXqqyejcmC7oAEI7tiOa9Qw+Hg+qqGjGvo+P0fc7cY+52xO+3Ey866syFz/s29zcXk1D//6IZaoPdgV1IjKNlFZIyIrGJIEmCBkMrRlV7f9PlWmgAgX/nMxHk3C51CSL6dMmlMl3aWQ4VLIcGtkuVUy3SoeTer26Tr3jFPhg1d59zd/5Yw/3Pylcn58kYq33wBATM86JmK7vgq2xEwGWU2dUzkfIg9ufJUVZY9hCwoIDoZkJGOlREHGTFTwQI9nubHmMmr/sZr8O4twGQ7kbIPJ3z2F2ppKYpEoI/IHt/cXC4UBBY+3I6bKYexfAFutScHi8OzCNTYbDJPW6oXIZT3x2iNILK+jLeMBa1/7CN1tYCsCjkYBxZBx6zIJUaDe48cR2f8t2rfYJCuRT4sUwGOpKHZStJS5l9Hj18XoegIQGLAik7oVS9AFgypvI1N++S0ADD1pwSmM5PDZ2+8x/bzDjwWzogZyeveC779JStSkOGYwj4EyCV+W04b34OH5pQzI9bC7KXLEbj7V0eQNP1+TKYvG+awlOZvnuHTPfqubG5ZJyJtGeqCFp+c9TYu/hUAwQDwax4gZWHELOa7gMBUQukoVwZYIqwr13gw8skiuqpClyOSoMj00mQJNpdCh0t+l0dOhIrfdyH+zeg4vtqYjCAJWLIItQsjYzvKzT0cuq8CWZbRIFJcN4awM7MKCZEoW00LQDTB0MAxsXUeMxZGDIRzPPsf2555H1xRsScaSJeRolG8lDM5SkxdzyTSRTAsB0AWJmKwSkR0oqg1c3+mzhaMd5RRWlDUfco5FUUhaFvfM2pvS38PQodM54/UneGvFUs784JXDFjZ6KETVZ5/RtGoVsW3byVy6FIDShQ5ytizc04qMSSHc5xz5oOSjwVbbwxR5H/mEDpJVtYsA8Lj64dLyeGXHO7xVNo8cdyEOeQay18fChs0UG9l8+u679LW9KG4HmuagV++uaQsS4Rig4G1zzViWhdvosNpUeOspDiZjgBq0FooAq7UFAO9J/dAmJ2dR+u95Cp1qWjImIMRNqiNRlISAYFi4m2RUQ0G2JGzBJjueTqWrnrjLQIp3/7tetmA+RkLHZ4lsGVzLzO9+C93UCUdDrHjifTwtydgeTXMQvsRHa30jZlzH3Bwkp7VDoDndLrb0qaZkVwGu9SZ0NWYeNFbUQDjKifcgJWpSHEMcK4HCX4ahBT56pGlsrw+hSsIRe6reEk4GOS6rbeUPmyqQLCixoaq1mYtKWxnpddGkmzRbJg2WTq2YoE41MCUvqE68tFD6WSmGYGCoBqggaiJOj5NE3MJd2hdPjsboSQNJz0wjryCTtCwvoijy509L2aIH2DRqABnugwuEjFkWCsmnQDW/gME9f88m7Tbk+m3EatNxDhpELD2NQbfciqew6AC9JaedNixdQs3rr2G3tCRLKcTjJAyD9EsuYfD532pva1kWRiRCoqWFhL8V3R/AVdz1GH9+9qP2v3felSxwaZgWrZEETeEEzaHkuz+q0xLVCUYTBGMGgZhBOJ58RXWT9VUBLNtm2c465g84A7ffz4kVq9nyk9PQBvbHM2wCGeNORfV1n13ZiscJV1URKC+ncckSYp9/jntHKZJl4RAE7MxM6vv3pzQ7m8kluTjtSqJNBYCCUf/lRMCxQjwRY6eay/ediS/Vzw1jfsody0TiZoRQvAnDimFZcSwzxmStmlmZOjt7jWVu1RBOWTgS8OL0efbZnx5JEBVjqEry/962bQT2+j3bNr5bh7H7L5/T6kvO2rJ2rAB6I4odAcmS3orgczD8lmSSy38+8QrhFQ5u+sWFnY5nmRY7t26mf85ANj4+n34tBcz994sImoTkkJEcCrZl029xGiABDlrawsEUSSHdkwEIGFKHu3nIiI5YuY+rXybcdi3Zw8xrLmLeAy/g9qvs3LkVt9uLx+3F6XIfkii3U+6nFMcStm1jRYyk5VcWk7kGpP9u4TfjayBqBEHgor73s6FpMH3SygmF+uD1Dj7wjgdga1MIRHg0EYEvTL2ULJvNRpRMCzJsgfSYQf+QSMOgVnK0CF5R4ry+veh32nH4nL4uF6qdzbt49s7FeAsEJp04qsuxJxemYZcHufr1uYzJdlChm5yQn41HUYnoCWRRIt/roSoQ4J3KemQR3vP0JFdoau+jx4hvs+2ZhwifUMOQU/5EjxNmHNLnFwSB3EmTyZ00+YBtRVFE9XhQPR4oLt5nu+vPm8KTf/qUIWqHMJAlkWyvg2zvoZnRw7EASz4fTdxUyD3tTsKPN+DYVkN8/m4SxjyahD9iFahIVTrK9bNYPb+KjJYW0kJhHKEQspm8CalApLiYyLnnkjtzJkWTJiE7HWz8ZBWfzH+Tsy8+mayiHGzLouqX84mWa9h/ewzH8DzUcZMQfVmHNO5jhZ01OzBEmUFZ+QduvB+m55cw/ayHu9321rzObtragSESGQqTxszcZ39WVCcidVj0mhrrkej4/SRUE19aBkFHFLPtX8aKJ01+YnZH8LpkBDA8HbP1YhEdQ+kqGERJpP+QZBkMwUpeCwfvKKBJ8eM0VRyWhoiIhUXk8gwys3I4PqfzLEDRAEvqfraTGLWJql2FY1qLg/xoFvyrHp16WoCWtm01Z9iMn7L/HF22ZadialIcW4QX19A6p7TrBlFAkNoEjiSCJLSnw5YzHYQbIvzbY1GaqaLIAqokosoiStv7F5cVSUSTRRQp2VbZq015cwTpaxArsKboItbmZFKquRkcyua8IzAL9/pWicu3+fGd0w+XqqDKAm5NJsOj4XMpnYTKJ6++Sc+tHvpdcXCzcM5+6ywYDXnhXlzLt7psn9ArA++W3SwsLGIhgAavhyCZar1NYAVCgEi67EKxTHymnxJ7PXAyALFIM4ncWpToFHqccmiC5qsiOzON3mIQl/Ll/+fcDh8hxy14Yn8ikKYx4/G5AJiJGP5NC6hf9Ab2vz4BBPQHP2SAqtKSkUF1Xi5Fp85G6NsPlyiQO2sWg3O7Tmmu31qKd8tK3rnzdiad9S0GnjEdb+8qgmW9CdXkE6oB94Z3yfjJZV/6sxwNtjZUAvmsb6jDtpcwceCEI16lvNrOpb9QQW1t0s005fTZ5OynNhkAURPJFlkw520Up0YiGKU/Gfyx+N+UyzUM6z2JcfE4mq4QcSaFhCUkXVVij77t3ahWKzFHR5C3HrGwtP1bpfpdOpHqst0MHTOGIlfSmmSaJtFoGNM06ZmW0e1+ggGW1NWXapomUgRiWtdJA7q079w9adkHFsp2wgT76JdIgJSoSdFGdEszak8vnhOKwLKo295CfFMTSsJC0y3QwabzP77aJw2jLsL3AgIP93OSMC0ShkXcsAjGDPS25YRpt//dsa7jfe8Y1jzfsZfn4VB5PzEcBKhJwIfNYc7rcYAL50EghQ1G+C1y+mXz54p6asM6D+6jcrilmyTEfU/h3Bd+tbHb4paqLHHje2UIToNzfzkL3bIJxWJE9AS6YWHaNpFEAkUUGV/ck0UfXookbUX3pwM3ARCNNCHKNr70w5/Z8lUQtQQ8R0DUAJw56fs88967eGtup7X/VFobNrCrbA6RyBK0kmrkX4HnA4nAeSbrth9Pa2sR3/veWfTsOeaAfbdUVwMQibby1tN/4QwLBl17GWmAFUvQcu9z6C0O7ISOoB79MgCbmjZx78p7uXr41UzsMfGA7V1KMvj2Nr0X1MC63FpyM49sTqgPjXG8FoAHL74Sy7LIPogUDVKOE3W3TJ/PkxYScGBisUHbQYsSYHft67zzwus8q99Fz+05rPjlp6TZTlzE2HLfSeiSm5gjhwlCLfV2x/diRgHH/pMAFhb1orCo829ckiQ8nv0nghQtgR6tmSy743XS4m7cVjIGyMSkDz3Y2Leiyz6KIbGpXxXjLzyZcDhEJBQiHomSnpHJwF59u7T/Ilbk2Kj7BClRk6KNxO4A3unFuIYnf+jbPthJScSgRYRGRUCXBRKaxMDWjpvlVqeAKtpkWXDfRaMO+9iGaaGbNrpl4XMc/QvykeDkLB8NCYOIue+kV4dCTIAINjsTOg+W1wPw4JDuRU08FiMu7P88Vt/yC/xvvkmv55/j3fPe5emPXkP5uBfbysso6d31IpaeDa11DvIzun863MPHb1yK4N2Gl+8w+vRbO/bP6o8Zc9AQ+ow9QudYIGZLuNUDixrLsnhoQxWPVTZQL9mYqsR3nR7+NKkjuFQURQp6XIbQ+nNWLh0HgGkqCMJA3K6z6T1kFhln9cE0dTbufBZFCRyUoAFoqtsOwFX/+g8v/+xW3nvufrYuXEDvkWMpnjASKUMguruQqt8sQRKbybtlOmLa0ctpc+m7l6JbOktrlrLgogVk7mWl6I5ZI2ewsrGSseuTxWSPtKABCJgmLWQzYMCAg97nxPPOhvOS3380GiYcCoEAvwj9ipvn/wZskfN6/YhPpGb6R7KQdIVwJEF2YiURVzGyHiI9tIMWowdbEz3ZM/fPjomIvq8ms7H3hCJ2b6xEsMBvx/E0KIT72CgeB5rXycQxp3TZx2loSG6TjLQsMtIO3YV5rBSzhJSoSQFYCRM7biKn72Ulcck0tCYY98cOX2oklKD590vbl4s/qQYEgvuc4HtwyJKILIGTL5em+1ghV5WZ25SM07ij/5G5ONsxg5Bgg5UUST67lXkf92PN6tmUyFMZWVOAc2QOnsk92NqwmRHGLOb97QVsCVAh1K8Uw7ObyYNuoDB9KHpNMvtLeOEiCkf+iHH549iux1nwyE5C00RGnFTEmg/KsW1QNAnIwLZhyesfktc3C0XTUDQnmtOF6nTicHuIJ/zYvsXI4fFMOPNOAD7690Pk9R3A8BmzUBlKRNmIZZmI4rHxXceR8Gj7dnNEdJM7Vu7ixWY/MaeEExvRSjresrSuwnH8oJN46Y0SFFNi3JhLGTjwDFS1a2mDSCSCdigFPOPJ0h27P1tJ3xFjqflkO9t3L2f77uUwBxySm0ytB1laDzK1Hiivv0PWt89HOMAxquY9w7b3nmT6rf9EyDrwE/nB8scpf+TmT2/mzL5nkqHtXwjvYVtTHSAxMlYOjDpiY9lDVA+iKvsOCt4foijidntxu5O+5NNye3DngsdxK+n8buYV3ezREadjWRYP/egTXP07LLZiTEHOPzIPPF9kzOTj4cChZ+2sXPk5eYaHBtehW3f38LURNXfffTe33norN9xwA/fffz8AsViMn/3sZ7zwwgvE43FOOeUUHn74YfLy9p3S/LXXXuORRx5h5cqVNDc3s3r1akaNGtWpzeH0m+LgsMLJ6cKiu+MiLaWpZFZGOrkjXB6VLYJNMxaOqUUULahGRsCLwLqlVYyY+MXy9t9M/jKomLXBCAIC5+Ud3AX9QNhRA7ct0M/j4t9DCmnc+FMA0tLrWF6xmZEUEF3bgJSuMXjCWFYu3ERGNAOvaRAd9CyCsIVw6RCeWvkovQpOxjN0Iuk741QmJLRVK9n+ZDIY0mgVWfrmThorQpSuqu8yjsWvfoSlb+p2jIMmSgwO/wFLjhKZXIUru5C1c98D3mP4jFlkpE/GjK0k0LSb9JwjdwP9MiQEGY+jq6ipDsX45YpdzI1FMDWJbFvg1pxsTu2ZzaTFmyiM2vz8xK6WsjR3OlXbkzNcrrj8wi7b96DrOl7vwQdbad4exKONvPmfuwBwKT4SRhSjLXNzzAxTHdlBdWQHAAveA8/c9ygqMukxYCD5o04gd9jxyI6OAGhLj/PGY88TMzTGvvRjfD9856DHcyBm95nN7D6HloTQZycAJ2sdPfnnp69xxuCxFOZ0b408HOJ6EJ/z8O4XH95+NWZ1LZmzT6Phzdcg3ceZ4QpaaeSjpseZ8oOLOyXo25tVy2oREcjwdOS3kRIqmuvYqEHl/6CMPIrJ7nP4D2BfC1GzfPly/vnPfzJixIhO62+88UbeeecdXn75ZdLS0rj++us577zzWLRo0T77CofDTJkyhQsvvJCrr7662zaH02+Kg6M7UePMdKLip7UpSmZOR02QZo+EZIpMObU/OxZUt/8D1SyuwpvpwG5L9pGd58aXfuCKwqZhIIjCMfPkfiSYlZ3GrOwja/ofVB0DBFr+9S6T3RqJkh8RSYvj8RRSqJdDWbKdZ3w+s7P7wDRo2r6YDTt+AoJFtvvXbPm0Jz6gZR20UELFsBLYDonSBlQcFJ8rUiz34fOXS9sFzZk3jESSRRIRg3ceXofsPI7jLzkeI5FATyQwEwn0RJx4JEzGdg+aMylsYw21qJ7OLodELDnl1ek7NrLi6oZBbHAWD6WpPPfOKhRAFQTCtk2zCogCfWyJ3/Qp4tTeSbfsqXNWIzrhppDK0nk7UR0yTo+GooqoDpm4WyYhycj7qWdlWRaqqhII7DUde/Nb8OKl7Yu3cyNZlpfzfCdQ+H8T0Ir7kJaVy9kXns32ipuIKksRdAfellMgWEJTZRNNdTU0+SvRrWQAashoYUsZbClbAXNXIHAvOR6T3BwvTa0WRiJMzEj+gpWaFVC7AfKHHenTfNCMLZnMtqIWzvrsc37r6MvjK7ewYEYemnpoM9E+Lf8Y3QhxUt/O+Xt0M4hb6d71tHP1cla/9w7xWC8GTJzO+NM7FzjV3l9EbqsNnz7AnoiWpCspCAvvYV3PQiacN6vbvndtT84jGjg46daxLAvVcOJ0Hxuixht3smNgPdNHnn/YfdhRAwQQjoEK6Ic1glAoxHe+8x0effRRfv/737ev9/v9/Oc//+G5555jxozkDIfHH3+cwYMHs2TJEiZN6j4N82WXJSP2y8rKut1+uP2mODjMPaLG0yFqfLlJk3l9daiTqDGzneTvCmFZFpUOgf6x5PqhtXH4T8cT/AYFjvvdCd0er+XFl2j88AMW1O/G70pesE659gZKpkxHVr4eMTVHmkCgDJ+vN/Gytkvqxh6olk6B0Yye18qc8oeYdsVVFGU7CTfsZueqv1MvzcFp9WXUxEcRXeksZDnjz4sxYtpJxBJxovE4T//hU9zRDGJKmCmTpuLR3FRsbCEe0XH5VHoO7vCvC4KAIPkYc1rX2UvBynpa/r4JwxFGjrnxv1FGxB/hnCnfpve1F2KZBuo2SJNOQT3x4Cpef9Uosoxd4MBWZFxRm7htE7ItVAROkh3cPKyIUTkdY926qZ51bvjhDp1pu8Jd+luSJXH9OBdMOYMcfxPfXrmcRW+8jL98F4IkIakO3Dm5+LdtwsjKJ5FTSOXuMop69YamzjMPg+4YgaBGuDHIks27iSTipPnSyR7ch3W16wHItc6kIfMtrNw3UfpBPpBng1DdjyzhR9Ru305t1Q6aglUA2AjUh2TqQ3vylMgMHZjNxm2NaGICHpkCE6+FGbeBdmhumujGjZSdfwEAg1auQHQfXnFEnyeDZ8YO5bVNy7lH6cPjS97h2qkHf7N9bf39pDX8HYCnKh4jt/BycjzFiIJEDk14ZalLMLxlmrzxp99h2xawgpb6XhQPzkR1yijouLJdSUHTDbosoBg2mTteh9u/Baf/FcZ/v1MbLadNlLUXn40g2hLuQ0wb8FXhNVw4d5os+uPLGKqNWOLhhDNOO6Q+rKiBoMnJVCBHmcMSNddddx2nn346M2fO7CRqVq5cia7rzJzZ4U8sKSmhZ8+eLF68+LDFx+H0G4/Hicc78gt0eipK0QkrlBQ10l6WmqweHiwgUN/54u3t5SN9V5i59y1DlkUqZZOgU2Zw0KRRsGlyihiKSN60fecH8b/2GsbatfTISWsXNR888jcWvfQMP3j4ia9lCvgvy+6tr5DIzuPMpx5Cb2glumIb8dJWEuUGvVvG0qtvHjmjRrL2vR/TqLyPKDgoFC5nwMn/h6Q6aGlMxtBoLg2Hlnyle+Hn93W9YZz1k1HdD0KwwRaIR+Jors6xGuWvLcdtO3Cenkb40wqwIDGsDG1Db3Y/9iJirZes6FRiUjOCcGSn6h4ulmWBKHC96ee206YdsP0Dm6tId9tce84QJFkiFjWIhhNEgglM3aJ0d2N724a0LJ5/+C+khVoByBg8gmBDHa3bNyM4XGSmpVELrFm0kKJevZlV8w41fXpy/vYpBC0fr8ZOQMGkwAkPPrmBkxSDMzKSxQ21WDFxRwWmGOL44xfRunsViWgLRiJAILCGhsK3cRibmH3pLwFIhCJULFnD7hWrqdq5iXr/bgAmHnceLmUzW7fXI/5wMTx5Oiz9R/KV0QdGXATH/figBE588+aO8xqNHraoASjK7c1Pcnuz/sPXeCUuc61tH3TpBLPxJSqVseT2uAih6jGU8ptpbdv2i1yAZ/jok2eIWxC3BeKWhBm3se2BAMiOKQC8es/K9j7HrPor6XsdI9wjF3dN0pLZcOE5FDz3OgVlr0AusO3DLqLmhMmFPPVGGYsXVTCsJIvGlraMw56usVb/bWzbxq+EKYzlkB5IukNLN1XDGR1tQqEAy96dh+RQOP602chyV9lgRQ3EYyCbMByGqHnhhRdYtWoVy5cv77KttrYWVVVJT0/vtD4vL4/a2trDHuTh9HvXXXdxxx13HPYxv0lYYR1BkxDkjptNTp6HKmzCTZ2zT5aM7cGmRTV4W3QMEXwGhEyLCDb1/bzM+n5H9kqjsZHgJ59gNrdgNDZiBfxog0qw2xKN5WXlsgULQRSxLQtfTio+al+IegJRVRE1Ba0oB60oGXRomSYND7xJvCqLlYu+QyxtJ8Xij+g9/ipUd3r7/vFwMtBUcxz+02GPvk5qSmOsnruRSWd3zNox4zqOSgV/up/e40+C8ckoxXhrA3Wb16Lu6oUttpna9cO/2R1pwrEYliThlQ5sHaxpamVOOlzbmIDaDdiKSlav/qhFHdOC729pplfMpGjXcjYUDuD8q64hHokyeNwEvF+4dlmWxZ23/5ZIJOmSq4kkr2PvqZP43RnHEV6+i/d3wYPRpCl0l5mFo+27m3ji2+z47D6qlSewzd+SO6Sz5WzTJ+lUSY/hXTaYwgnnonpc9Jt5HP1mHgdAIhzhwe9dhCCIJKIRFMmCvBL4v+2w5R1Y8hBUrYQFdydfGX1gzOVw/E9hH7lj0k6Zhhy7HKVHIbJRC3z5qucXFeZyab2HdzYs4vThUw5qH7fdipl2Eaf2Px+r77lsa9lGWA9h2RY1zUsoW76FRCxAxFWH39mEYmTSJ2032pgGrNY0VCWBkCjHimRhJdwIlo6qJ0uShLOycLS0tAsagILnXgdAapue/X/+JlY+9T0ckhun5MKluPAoHuTcGFqTl9c+r6a5IUCz0yBNdFAZrCTbmY1DPjpWm8aWegpjyWtJk+onK5FGv+YCFv3hZQzZwlRs8prTGGgkv8/yYaX07TuoSz9WVD8m4mngEEVNRUUFN9xwA3Pnzm3/gR2r3Hrrrdx0U8fU0UAgQPF+sot+kzHDeifXE4CiSLQIoLfGO63PzHEzZS+30md3fkRJRAMEBi1fD3uJmoa/P0jriy9+4WhzkNqmBef4MvjpY/9BlKSUdeYAqPEoejdPv6IkkXfjeYSWradiV/K7Khgwu13QtGyZT93GF2mI6MAlqI7DzwM09tT+vP3gBrYsbmLS2R3rd7+zFE10YvTufDnR0nNQzhiC+WYpgpWMmWoxjg0rDUBTKGmFzDiICt2PbV4C5HHOBp3YagCD1p7v0PdHlwCwrcrPe06L36s+XjdM/L4MrqpvxGHbaB8v4fwcHz864bj2/j6f9x6IEkV9emPbNvlKT2r1cuoiGcwaM4A/frAY6HD91VheZCUZK6M4PThcRZAASesat1Yy7ddEPihlq/+XuMp7o7n6IMoSqseVfHe7UCUnSxa9AoBrT2ZbUYQhZyZfltVZ4My7Az5/AM5+GEq6uiaEl76Dp2Ip7AA+IymCzvr7Ac/r/jipZDKzd73AL/Qipg2I4nF0/qy76z5kx8YfUu+aiaEUIooa+cRxa7ltH0ekJKukY4ceE9D7m9SXBQh6GxHlDExTpdBdRmDEOgRBoqDgIjZtepnaup8ydMhb5GQPZNtzdYQe+SeOb1+Mb/BgWtevJ15ewQ4lxGJ9IbZgM7rPGFQzxgZnPjEzRNBowLBjWEIMS4gi9Ev+Nj/c3jaWUcBO+NPOvc4hAteOvJYfjfrRlzpvh0KwpRUVaL5QQyQPXoqxpagKQQQhDqIh0OIK4QxqqLaCy9W91e5YySYMhyhqVq5cSX19PWPG7PWUZpp8+umnPPjgg3zwwQckEglaW1s7WVXq6urIzz/89Nf5+fmH3K+maYc0ZfKbjBXSO7me9hBUBAjsP+tlXmI1ibKk+8ps3IZePROlIBlFn33dj3COHInk8yJnZ1N22eXk/fznZF52KXV33U1owQIkWcaKxUDTUsJmP2jxKBHPvt0AngnDGdv3GRatPpHq5f9mYOF9WKbB2s0/wMwwiUaTAZJa9PBFRfGQ5NNauLVzUHd4TT0qOSQ2+9vXtZZWkQiECWwIsbcUC1rHkKiJJEVN+gGuE5Zl8bohcLxaRu/rx2IlYrQ+XIVaXkzlB3MoOuUs1la3AnDe8EIm9zqL+1dtIIhFFFjjzuBOXeX1197n75NG0C87g8UfvwNaLh9+9jlzFy6knzCeUuMCQGL2nx+jzN9htSxyNzMlKtEzJznORKSVyuC/cdh9kLtxDYmizKgT/8nnH59E6ep/s+C53e3bZEFFllTiZqR9XUTv5jv5osCZfxcsvBde+Db0ngLnPwbunA7LTaAGZCec9Fv44BeQ6BpzdDBUNexm2e7N6KZFQUYe5xbk8b4/jdU7V3HCkOM7td3esAoB8EYWE8OFSowILnpm7LssiaJJFA7KAPaelTgCn69jwksikfw/1rR0JFlm8OWXw+WXt2/vedJJAKTXbuePH3zOLzyz+M4Zd4Dm4VK6J6HrBCMh/OEAzUE/O0M78CtNtMZbCSQCBBNB5pXPY3vL9n30cORoaWxk22ersGSI+cMMIBu3x0vZB2uRpXSmX3tBFxfTwvffp/d8hbR9ZDH+nxU1J510EuvXr++07sorr6SkpIRbbrmF4uJiFEVh3rx5nH9+0le/detWysvLmTz5ECbOf4GxY8d+Jf2mSGKF9U4zn/YQc0qo0f3nLsjqnUHjB/+i/ycfs33ycQQ+/JCsK64AQMnNJf28c9vbKrm5GPVJ062cm4PR2MjmkuQFKOvqq8n92bGTlO1Yw6VHCXj3H2BrJsIggCglrairnp+NWWAyPP3P7NyWyW4sFOfhuwW6K27XtGYXGYmk+do1OvluxBL4/7UNSZD5om3JKx07wrU5knTtZDj3b3Xe1LKTSjuPWwoDuPN6AiD8WKL+raUonxQSHLINf0JCtG3S3CqZvkIeLepIbxBL6Px90WL+rbo4c3Upl3z2JL6Kesadm443txexaJRYLM4Uq4mP6k10E/JjybiLXhkx7jtxMtbTzUiRZF6TmvVvkdCS7qpP35+EbKcxfOxDeHP7Y1kG9cHtZLn7oplF2KKfsVmnsLLpAzTJxejJp6NHoyRiUfR4lC07Psd5oIzKoggzfpWMr3n+YihbCH8d2LFdEMG2wJsPQ85Kihr3oWXRti2LP37yMg8KA7CFtgfVCEA2WbqfkcVdZ2WF5EK8QJN7FpLiw5BcqJKL5o+fZ9MdF1N4z19IO/OMLvsdCN0IYtvgcKTvu01dPfHpZyH+QqVs50KoWAr9T9pne1VRyErLICstg77AODrPGm6JtTCvfB5Zzq++dtfKeQsoWZ2LgYlM0vpV/9ImBoUK2VpQxeBuYmaMaAJws+av72FIJqZsYUk2lgK2DIN3FxEfofLVj/7AHJKo8Xq9DBvW+Z/L7XaTlZXVvv6qq67ipptuIjMzE5/Px49//GMmT57cKZi3pKSEu+66i3PPTd7wmpubKS8vp7otFfjWrVuBpIUmPz+ftLS0g+o3xeFhhnWUvK5Ba3aaSn55hG0b6hk4rGs9GgA5Lx8rGAQE3FOnUv+ne/CdehqBt9+i8aGH6f3yS2j9kpMfpewsjPp6bMvC1g2sUKi9n/j2r/4J5Wizalkli3a30KNvOjMH55HuOrDbAyAWjaGZOg4jtt92a1ZcjiAKFB13HZHqLfgLdlHQcjK5M85j9QdzAQkt/fBjWt678RkgaYUL+UN40jxEXqxAQMAvN6NEvJi6zo5nFuARHAR7hHANzsGMJDCjCaItJo6Co5fl9ou0xtpEzT7yi+zhg5qtSOQxq7DDteop6Ic12yDwj3rizU0sSaRhCQKS1FX4OVSFG6Ych/Xec9zvHsr7w2bzyCmtjD7x+13aXgqYpk519Qa83lzS0wtp2biOMKAUJH+j+YNPRV/TgpEIkbAbaNDmsGTtpTQJEdKEMKoAAVPC5zZxNA6hv28UK1s/otUZxTtjACOGdrjBrBvPIZ44yKnFDh9c+S6sewkql0PMD8Fa2LUguT0WgKfb/JKugxfPS6oruHVLKZvFQdwq7uCyUdNwOVxUVW5iZ3Mtw3qPwOftervsmTGUjXUlqJEVyHYMleTLytWJTJUIvP32QYmauJFAEkVkMXk71BN+TFNBVfdtwUuUlSEBnoSDclvl3xtslixazl8vHEWa89BncFYGKwHI/hIPHQeL3ZK0rFedqpNYWsOA5iIkU6R8RpRJx53e7T4Dxo9kc/NS0G0E3UY0BCRDRIsLSKZEhVrHDrWRfhy4JMZXzRG3F913332Iosj555/fKUne3mzduhW/v8NUPWfOHK688sr25YsvvhiA3/72t9x+++0H3W+Kw8MK60ierj/E8d8azJa/rSLtmS1su9Rm4LCkSTyRMGiuC2PbYMhpCM5Myu55ENubj6B4KJ01C9HjwYpE2Hn6GSi9eqLvLgcgtnYd/jffTB5AFHGfcALhBQtQen49452amqO888Z2EGDGVj/nAlNXlvPFXKLTKlfzvW0fktBc6E4XhsON6XSBLCNGQgwEMpYuAG7p9jgN298m5mnGGcvDkVVE3F+NEBfwx9cBkOWKsgMPnrzDExWWYbIzmhQ0sh5m+733MfqOX2NPd2PO95NmZMIGKN+wAA9Jy0fGpN7kT/zyFcq/KlricUAjy73/WSiLWhOUSDWkaeM6rTfagq9lj5e3m5Nu2rvnbcUhCQzP9nDikHzC8ThPv/kGDfPewxNo5lvD+nHeBTMYPbhD0FRWrmHXrjWIokRtbQXbtgWIxx2ATV5ejCyXk50FkymI+nAu38X8VW9xTXlfTNEi4YjA5DmIUgO60JOgaxI+dz+iLQsJN4YYX3Y6Fa56Bn3vAla++AIf/O4PLD55NNdclZy1qhsWinKIOaJGXJh8Aax6pkPU6NG2qekC9Dhwja/Emk9Z8ad7CFeG+Zmi4DA0No27lH8sLeW8SwYzuN94+vXb9/5j8sYwJq9zwkDLtnn24+8QOK+U0dP/dsAxXP7pv/iu8SdCeDl7xhoAYvEWLEtDkvZ9XsS2OCxfVKVM0/hgSRyo55Mt9Zwz+tCTkNaEk7MTc13dPzweSfIn9oeyKL3ec1CvuSmbHmbSzDO7ndW0h8KiXhRete9EiLNfnc2pfU79KoZ7yHxpUTN//vxOyw6Hg4ceeoiHHnpon/vYX0hMdcUVV3BFm8tiXxxMvykODyvUvfspM8fN4BvHsvn+laQ/s5Ut3wZDN0l/pSOnhgB4Trkb9oTenDaN8Md34hjSh/CSJfhOnY3k8RDLzCK6ejXIMpmXX46UkU76eechZSYTsX3d4mmCkSjvfPI5zeXp2Gv9KAKQljzHNxdnsyNHw19WwUfNySf7HKeEf+zx2KEQQiSEFAnjCLYgmCaSkTy5Du++Y2rqV78K2eBuKaDyo7+T1m8K2U2jaMhfjWnGSUR1RDOBpBzeTz7emryBTxmrk/jXHRitSRHa85SxcApUL9pA0+JShFYLsqIM/P4MVO+xM9OpO/xxHdDI3E+sEsBmPYOzfC1d91+1DYUinDk9eDQQ5erWRv5tRbAsiDREOOmlTYx46yFE08QeOppMLQtWbieYbWANOrPdnffmm8/T0JC0FslygqJimdGjxtDQUMWGDbt418jn/eF5gA0hPwycyu60MjLiQUaHbMaGb2bwcdM4KWtvAXkLCSPB6hWLGTNmEpqqMX3K2fz93p8S+nANr+U9wnlnXEsi2ILPe3ixh3o8zNOL7mSIQ2NSLA5Dz4FvPXFQ+8YWf0jZ939CulNm5YQZ9G1spXDdcnZHAkg7I6zb3szgokMX4KIgUNz/ata+8Rx/XXcbDs1GUQRkSSBT1emfpWNs246Y0HEOnsoZjjWggocgZZs+Jd2TRkvDJiTVSSKRQFW7t6ZaiQSGJJMRlqjMjJLn08jxaswccngzOOsjSbd8vuvwY08PluGjx1GRtZPyzdsZP/0U1CMQe9oSayFdS//ygzsCHBuRPSmOGrZuYifMbkUNQEaWiyE/HcfG+1dQ8PxWPCTFx/piJ5ltidkEQUAATMOkaF41ZPfBCgRQ8vMJfjQPO9IRlNjzsf/gnjDhK/9cR5v7Hn0Wq6USpXkUki+djKHprN3cgkMQOGVmP344KJuTr1kCGcV8z9PMNT+6krye3V/QbNtmy+AheHrt25qVUTSN1t1raMpcQ6O4GnbdDwWgNDqQJA0jbmKJMs9+/3n69tcQJYEVO7wgiEwdbzD8qlnEmgNseWkhoYYQodYEef0zGf3D5EyXd3/zNtCDjJ4Z1Obm4N24hZXjxmEPGcTwvz9EwfHDyJ9Uwva1L9B70DmoXyJPyX+LoK6j2Am0fdy4ABqizbSQzmBvN7Flho2phNF8WZw+0uLdXU5G9M5AFOC1lZXsfuQ2AI779d1MbnPPf/jkz1n/7iZ6DHiEcTOTs1xicZtevXQuuOAG3O7sTrFLM2fCH5es4v0obBk/CN2wuXjtR6zJycYQilhp13HTSZd3HRugyioTJ3Xk3/E4fNzws7/zp1u+Q+nTb3Hnm2/jjqZRFYXcB37K2OvvRdjHlO3uqGvcyH0+DXx5rD/uXt7a9S4fPnUcHknDLTlwKy48ihu36sWtevFo6bgdGZQ3bqJpyadMNwU4dwI//tUDrJp4MgCT/u9s5v9lA173wblmu2Ng+ljmtyxAVm1ysi0SCZOqapVGOUFexmqskiimEKJZfY4sscP1Vlqb9BZk5ICv+ngW/vxzNsdMbMEE0UaQ7OSsIBl0PY5x0m8ZW61wfLmXZb3WYUQs7vz1EtKC7zHSdBIP2qxKG8CS4SPRZBGnKuFWJTwOGY+m4tVU0p0O0hwOPqnajmW4KfT8d0rNFPfsS3HPZKkSI5Hgb5edB8Cld91PXt/++9u1C7qpEzEipGnHhms5JWq+4ezJJtzd7Kc9pGc5GXrTOFbM2YaoSmT3zWD2uAJM3SQeM4jFDOJxg3jMJG5XEC8chDenGdeE8UiZWcjZWUiZmSh5eWj9D+0H87+APxZBFiTcbU88kWgMq6USWXeTnvAh9EiwKhTlLiIsvnE6PXLdWJbF+DSb7cBjoUxW3/cer/71u90G4+6JPRL3Y6kpOO4KCo67AssyCFauIrBzMaHGzWQUJ+Mnhl0wAf2ZxWxpyWNVWdtObcaxT5fL+OteY/tOiMjpqIJJws6mZkULG657kYCZA/QAoOjkcbREruHz514mrqiIuoX/3AuY/Pyz7K78kGr/7USeX44QzSTUv5GMrJFUVD6BIuYxZPTN9Oh17MTAhXUTRdD322Z98y5AYkhajy7b7ACYaUk3uiiKjOnXEfdxwfiezBkwhe3bF7YLGoBZ372Hio3nsOrt99pFTSIh4vO58Xq7dz00JQxUQyDdk7TmzJuWTP9/4oJX2GL2ZPwnbzDMLTEjp5Ch3iwG+rII6SHe2PEGw7OHM6nHJKS2MiQuzc1tf36JN974B9s2rIBA0gK1YNEOZOevGXX1Hw7m1AFQVNjxcLJVVXmych5bJZuxeoJwoplwxCIs2IQESHzREtsbeuYB6zdTYlk4/ZWE+o5H15Pttq6uJxBK4HLKuJ0yXpeC16WQ5lJIdyk4NXmf1t2mtoeoEWdcyFkjhgLw2oPPUdVSy3DnXwh+nMy9ZcUa6XH3KdTevhzD0Ux5rsmQGXmE/Y1E0zNYFrMAgYJRKoZuoccNjISFoVsIMREjJKCYSVfrhN0dgb9F5RU4EwtJbxU5yQowp3gshilgmBKmKWOZKtgKYAPRttcEYAw93F3/z75qqrd1JE4sXbnskEVNa7wV4KALl37VpETNN5w92YRFz/6fjNIznIw9vT+Vf12Jb20zVa/v7NJGARAkdoydzohrx34Foz32qA22MPOVkxBEHduSEWwHgq1S7Ctk9o7L0ZUQ3/3BNO7580IAeuQmLRiiKPLHe37INdur+MlDH7LakUtDZX231hqjqSm5zwHcJMl+ZdJ6TiCtZ2drWObQ3px0V2+mhmM0bSyjaUsVNgKrF9STsFU2lioYipsidS1nZ97OosB3WRM5J1mOug1NDyCKIrfFZJb/6Ob29fmN9Tw/bTqBswyYDbZgklM1g+aSH1AbehclHaCGjWvvpEevdw/l9H6lhEwTjf3P7qsM1QM96O3t/L00rF6EWl2MMCu4z337jBjJ9u0LqVy6nqKJw9vXFw0ZwKZ5G9uX4zEHkei+HyqeNdVOV+pNFZvZXLmVUwSJBjtAhdCbijC8FwZoAbuBafFH2VT/OQBpahp/mfYXJhUkBaWiqHzrWzfw71GLWPj0+wzesZ7cNImVn61gyLfqkR0uQpVb2TXvZTatWockiqRnuCmZMgNR8yCoTlR3GlpGLvf3voCflr3CBfOvBwm8ls0TV67o8hn0eIhwuJ5QpJ5wpBGnkkfzXy6n9uQRbH/4JQCCYZEeXpWYKuBY3ULT6haa9nFOLAESioCpCIy4ZACzx3ZYOJrCSVGTvlcAeDQewyFppM0ah5yxGb2mGbX3cBSHi91n9SZUn8u4ab3JznCSA9iWzcdvfwLA1GnDyS7pEKy2ZVP2yXoWv76YgOHElBTSWnfQe6CLwhkjKJpyL4os88blP2HQsrmsufnbSGrH9+uPhRl394vosTyczgCKbBOLqxTl+VHlw7dQHS5ZRT0pOX4aRiLO8Bnd16/aHy3xpDBOWWpSHBN0V8xyX0QiBhm2wOdpIul90pFUEVmRkBQJRUv+rTlkpg07tOmc/4v8dt6TfFj+Djp+BFFHE9KYnHshoUSI5a2vMap2GmFR5rJbJ+FN9yLaMD0/nVjC4PPVddQ2R6hpjfKvVbtIaNnMrFiF9Wqc2piF4dfBBEtXER0J7FgzAKL7y9dMUtwO8ieUkD8hmZRs2F6eC9u2wTge9O8yGYnRdQEqa0Kc/tYu/jIuhxNHl1BR38jy/CIAckKtnFpdxoQ3XiPqcqJuD8Nsi/TKE5P9iZ1zHDm13l96/IfLu2++wa6dO+mZl4vq0HA4nMy33ST2ExwJUNa0AsE+nSxH5wt2cF4lZEHv6d/a575DzjmZz996jpWvvtpJ1DRWVOBMS1rkotGkKNIT+3b79DSilMtObv/oRVbrGksdvYHeyY177fZYP5l7ynazxSzEo3ZUAPcn/Fw9N1koWLUkZsonUFc4m41CArnfcIZvXY08cgr1n8zn79d8r30/ARu77QAVzWHWl77VZWynXdR5GvPFvq7ZZgEUzUO65iE9M+nymHP7lfS2YPyVt7Drh7/HDTgcAp5Va7jx3qmYgD9i0BJOEIjohCI64ahBOKoTbbMOEzUQ59dTWRWCvZ6hWtuSKmbu5QKN6XEcStKS6h7fOXh9ynFdA2AFUWD2xQN4/4XtNG1tIbski+ad9ax/cSmlO02ikg9nPIuBOQ2kffhvXLFGssZdRe70jkw18bbivsteeIvJlyfdO43hIPN3bkKP5fHtqTHuOu3b3Z6v/ybu9AxO/8nNB264D/zxpLUyw5Gy1KQ4BjgY99Me0jMdtAD5g7OZek73F69vCgurFxISN5MljCFuV3P96Ou5Ynhy1t6ba2ZQuTSCPilOYUE6m3e2YAnwcV0rw3/9AfpeVvMxosh1nz5M/5HfwajJBCsBloFtGyAIWDEbK5R8ehPTCr7SzyQIAigaKBoi4OqTxsA+sP24jpvA3LUdpuqzhTi/v+YKuOaK9nW7b/kESZApLXoUq24ki7YNZ1DfdWR6IgyY8IOvdPz7Y9nqNQA0+DtqwPmnnQNAwbxVKJbJKTU6V+2yMFQRXRExZRGXUMJI3z+4+YNaFFFGlRRUUUOPuRjX2pPmx15BdbtQ3C4QLBw+H66MDFSPC83roqBwEPV1u9qPaVkWDdsCDJiaTIYYDjcAMGLEvmeWDGzcSXn+UN4wcxhLI6cnSvnNyNE4NTebq7aysL6evwv9qSrfQU9NYVsoxE+GX8allR906SshmnykV1ElJC0bI0LJcjeVDQGmXnoJmcFyDMPAnZlH/tiZOHIKiTfXImoeIg2VrH7yLpobmjFtkcpWCdkWKTJBljXmXLrsoGJyWpuryXl7KdVTBjCisC/Ra75H3bNe3BuXEPr5taz/dRrWcacw+h93kO3bdxBrYzDOi/PrcX3h2tXaZqnJ93UIu+aEnz5pRQcc29607Ez+r2xbtIlVH66l2cxAMkQK5ToGT/fQ97yzEFWVzQv/CTGI2B3Z1z+e8ykjVnwEwKATky7gNVW7OefBNcnELsCsQSV8HWhpy6mUChROcUxghXQEVUJQur8YbV1Xx+4VNdgxA2ImQwE9tP8sw98E0pRMmsL5fHzl4zRG/FQFmnhn61LqQi3UNTTio4AenuTPK1hew/liKY3e4fTK9jF1eB6FOS52VgU49fieiNKZ7Pz5AqISDLxrJuIXcp0EPlpC1UJQiw/tovxV0Gev/5PKHWUYhkk0EGHhC4tw+jSOv/049EiUoqyn+PTTT2HbxwRjp/Lty4+eoAHomZlGZUMTv/zNbwkG/ARbWzErG2gRFbJECBsWo6r9FEY9rOvlQtAtpIRFIracKnEJckBFtywM2yZhWbQW2zQ3bqfP3MUHdfy/XnRGewyIbYvsXLqJJ8vOBxQmR6ZhzJdYv2URroI0cocX483psAzN3L2SU2vXcskNd3cRDbkZeUwD1r/7Mm9FZQblyViCiyd//whnmz1pccYwRQvDNkmoFhkJFxsmXUVV2/5jTpyJ6VaILZrHxzu3cfFd9zN4ryzttmWx9Y1HUBwuTMtm9bYgHtlCkkV8mkHmwDEUrnSQLjoPKGj0RIy17z1N8G8P49Ntht90OwBFp0+h6PQpmLpB9XuLqL/3z7g+eYn5byawpRiKkkk8UYlpBZky42Fc3nS2bShj++4GQt5SWmp1nl7chKYqOBSFLdu34wAy90qqGLd0LKn7Stv7omhsDkuX1VEe8JDVtJFByudknjmQERdciawkHzQ++ddvyW9O3tTDjz3DOw0bSQhu+r61hC0Zxdw94WKGLPqExy/+NutqK8GWcbtbyE03GVVw4CKq/wu0xlsRBRHvXtbBo0lK1HzDsbqp+7Q3u98pZaDfoEmEuCSw3SmQP/hYyBt5dPGqPoxYHSOeGo0gdM46069xNCdzBeGy5EV07sfv4FXD/PKq0WTlpre3G9wvOZ297oMyVFFEtcFf6idjYGczrulPuiik9KN/0RhVMoDXIuvY8OwzDFi+lEe35WNZXkAFbOpiTxIKBenVuzczzzmfqVOn7re/ltomRBHcGT5k5dCTlh0sg4cMpXzh52xdv5ahY8aRkZXN7/p1Dohcu2U+4UCc067oqG32+Quv0CdcxJyL3gOgtHIzz37+KC9H5zL1nEu4YMqVJMJREv4Qj978fTzpWcy66EckIlESkSiBpgaa/JUYgo4ejRJorCfQUI9tOpPZn6vTGZo7DLPRwm7UkTe04P+whWoxTtRnIRW4iEV6ku1p2K9o6OV08CTF3Kj6+bi2gtdOvYyLFj5ND8EPukl6r2IuuOgG8rOLOeW199v3u65PAcVDrqDyjDN56qZreOaJx7jjF79s377l6TuZN29d+7JTNrj413eSVtKRyV1faaKJB/7uVvzuZ6S//DG6V8T16H0UDhrTabukyBSfNY3WNc9gv7SDhPoetpGGbgVAtpG0INs2vEvvgWfw3CtPJHdyA9urKN0rd6cDiDhcXYLuc32Hltgud3g2I9c+iCdchZZos/CtepdVTphwzjUsm/Mo+fcm44HCLpFAukraZ+vRItDkSOPOiVcSSrPZVJlM8ljgTUeQagiHM9gVhp+/OY9HLz57X4f/n8Ef95OmpiEKx0YJlJSo+YZjhruv+7QHy63QGDQY98f935y+afx00iU8uEzGp3rJdGaQ48og152JW1W47dPkrBbXoKTY0cWkj39vQbM34fIgKmBO6tFF0ACYweT+ctqBA4W/akRR5Lhxo8j89CPs9xrZYnf875hSlM2VyazgVSvXMPOc8zvtayQMWuuaURwqsipTs6OaDx5NZlKNSvWceutghhYdOGnb4TBmygl8uOBT1q1YwdAx47pto7bauK3O7o6gHsQtdCTnu/ej3/OpsA5XQmbCoGmIsoQjzYMjzQOCQGZxMX1m7Dur6rI5r/LZs49z+nW/ot+4iZS+sQiWWGTdMAxXXgbNu+pp3FRFrFxHarTwbDI4g7E0xfefcfsXYyby8eI1/KUizF3De/B/ZTHmjzuPpeee3KVtuM1ilCFLFDuTn7coO4ucsy4m8PIT/POVV7jmgguwTIMFcxczsDiN2Xf8C0GQkFQnwhfikAKWgVfefwJDgPSXPwZg6Icf48voPp+LZVkIWzZiFWjMOnVNp20fvHkOdZG/MyL9YlQ8JAhx/IRpTDhxMhFdJ5xIEI4niCR0CtJ9nfo0bBPFcWhBuKIoIo0dgbQ7m+Jn/kjZuoVIV9+K0JaUL1xXzZ7HDHfEouebL5BbnHTLG6bJSkFg7D1Poshw4ZPPENMtJpdIKJLJgnUeJOmLKTj/N2mJt5C+n5IS/21SouYbzr7qPu1BznSQWR3FNJIm5xRJRhf04T/ndM3uu6OpipgSwu9ooHqdwcVndmxbtWgTOfmZFPbJ7fwUmZG8seTP7NntsdqndGccfUvNHrKnTaf2309h2R0mfsHquJyIVtc8Nc/c9gbhQGaX9VHfFpyBEr7/7o95/YLnyc888rk6NIcTlyRQ11Z7rDu8LV0vhxErilvsuGEH9CDFZgZvXf0xktTR3rIssG2cX6jPFWpuomLTetJy80jPL2DN+28hiBJ9RiUjWxMNQRTbiSPTiyiKZPfLJ7tfh/vH0A1qf/0pvXL2Lxoy0nK5r1DjgsZcLm+EgYRpkbp+Hsuy2O1JCufxaZ2/o1lTpvDKy0/Q2pycc6T7GwjrCv3HjEFpq/reHX4s0tQDB7Hvvug4er34Ocv+9htOvO1BJLnzdafm/X/R9Ld/IO2K4bmja+4dTe6P6VzPorm/wxANsCTGTRhLmtNB2n7qd8WCERDA6d5/OYzuCIwvodhzEnHDQtac2IAejdDaWMXEb9/Ap7VV9Hr2MwA2zn2J3O/9GgC5TfjopkgwarOsNgNBbkEUJCxTAUxGFHT9Lfwv4o/7j5l4GkiJmm88VkhHzt33BdOT50Ld0EpdTZCC4mNjyt6xTP+sQn4+8n7WrA+S2ZxDc1NHJto5c5OmareUxdAhI1hoiwR92bhaQ0j9VIat3sUIvYYBDhnB7QLTJPDeZkLrykEQET2HflE+0mzbuJCHP/4DhqljnGEyPABCWhPnXXsCogANtUV8Pmct0ZY0Hv7hGwiCjWlqgIIgdNx4igaF8Wa6cXo1cktO4f0HdnPC1uN59KdXgyJgyyK2LIIiYssCoqIgqgqKpnH6t65l2IDxhzx2l8NBMLrv+lnNuQm05s7rFrIch9BhvWlsrQWbToIGINTcjCj3xt8gsnnRRoLbt2GGQ3z+6YtdjlNy/FREWSbmDyFvt/E7mumpdW9FEONRQEHR9j/1HGDK8GksKl3OjF0W2zxZnN9Y2qXNspp69LZpwxPa6oBZlpW0SkgygcxcPB+/zb2CwE3fvxqvZlC5bjU9jLmEt8nIzgh60Ie7Vw2iCoIK5zScTyQWYvnCBSguB06XC6fHjdPjxutOw6Ekv/cTf/E33g9eQf8XP2Wu8hNm/+of7eMKV26m5aZ7oVAj48GbyZ/5vS5jt+xkLF/Ufh3bPpPCHhoZ2QcWUxF/0tJ5OKKmZPo42FzDhn99Qt6M5PUv4zf/oOY3ybHvHd5thbtWJjcMEVNMuqEfv3Ic0/slg4P3nPOvA8dSNmFIiZpvPGZYR91PTE12kQ+opr488LUTNa0tUZa9tBk7pKMUuJnx7a6VgA+Hy0adRODzlSTWt5KW1vWchc0mlq3/BBWYM/k0rF4KuiyAEaVvyMtLH0aA5AVSIA+N10nI3VfJ/m9SXbGZa+dfhyXaFBoeKnsrKDVLKA4PIL9P0rqQ2zsfTVFYM3czpm5jmhYttcmbmssbwUhEsRGZdM5x5PVJJhqzbRtD2EZWfCiO8VGMRAIzkcBM6Fi6AYaJFTewwnGkuhY+y339sESNpmm0hKP73G6ZFgmlazBpjDiz/z6aO8f8Cs1WKM0LMOqxEfRIpPPMt18hKy2Xqq31qN7zaG2Ej5+uw9Rb0UOvtvcxePJ0FLeDYHMTJ//gegCq5q3FKXrIvHjf9bHsxt3Jsa3/CDZfBwigeWDqz8GVCa6s5MudA+5c+vUbzzvvncev4tPIW/c5L8x7jD4D+9LvxHPJGjmd1ZXV7JkH/vvSGn5f2lZzSJVZNLGEW/72CH+598+4P5rD78rq0AwP28tFBrfV89KDSRERrxCwbQXTTuM8ZkILUA7JeikJoJU4EMUiKsaJSnFCzhgn3fkYC5u+RcFz83mv5lyGXf0TXHqI+iceAlGg//Nv48juPnP2jDMeAB4AYNXaW/CmHVwMVrg2OeVYU/dfjb07evXqz0eDV1OyuQAKigk+/hcCtRUkQgH0UAA94Kdg0gxUl5upI7u66A1DxdCTx+2d2WGZOdq/5SOJP+6nX/p+inT9l0mJmm841gFiagp6ptMM+GtD+2zzRYLBIH/961+5/PLL6du37xEY5VfD2o/LGLIrKR7iDXGi5+o4HUcmWLVnv3TK1/nZtqsVm/bkvQBoo8ezNRhBdTjYdfI4RFHEsizu+OQtXtXSyPteHnYohBUMIWX3oPU/KtKOg6yk/BURCjZzzeuXYUnwzGnPUNQnmUH1xQ/eofF1J9t37WZAn+Rza/+xA+k/dmD7vus+WYOAxfATZ3TbtyAIhAZVkb6lL9f9+H4A/MFmWoNNuJwevK401Lan/b9++0w0x4HjN7rD4XB0KSTaaRwJG+sLV8R7tl3Nv7NfZltmK2+sfoZHr36FVz5/gu3N25krLWf51k+ZPeEC/PXbgQ73oGVUtP99csF3KTh5HNlD+3Tq26yJAhoZJd27HQGEzCKgBSnTB3mnwPYPIB6Eub/e5z7DgMfin1M++Up2b97M0uU7WLj0XnzaPSzsfzyccGaXfeoTBj/dUsF/hvVh4KQTqVq9GLtsPdGcQZxoD6RqmJOJl3aNRYpXBGh4aC2OqflYY9xEwmFi4TDxcIxENIYejaNH4oTKmxjZ0B9/oBXxhHNpbvmA4mWbCX30I0KALdskZmUSaq2gpXodkupGdaQhu9JRXRnITi9im0vHsixMU8Q0Dy4mJVieNL9pyuHVOJK9SctWU10dIyd3VLE2LZPqiJ9twUZ2RwKkmzp5dBZOgmADMoIUpGfaV1+B+3AIBFoB8PnSD2v/1nhrKqYmxbGBrVvY8X3XfQJwuRW2Czbxhn0/4QLEzTgxI0bcjLN843Iq3BU8+dST/N/P/g+v99iIBfn83e0ENzSixEw03SZHt2kVQLtoEM4XtrF2aRWTpvXGsixC0Ti+wzBX72HU8FzKX9/Ne2/vIKvvcJp3rm/fNqhnMbeOHtFln53NlUgeJ3bvvqhqxwXYikYR9zHl/r/FvI//Q1lanGdK7moXNACnHH8CT7y5iE8+Xdkuar7IiBNHHbD/TDmTBld1+/IDN1yGK9whBS1sTMlGQcThOry6Uk6XC6tNQHb3pCwaIFjQWFrbHtcyLDaIh8wb+V3Lw7zvLeWCbSv44em3smD1u8xdt5w0VzI+xdJDxFoe5dTrbsJl+3j14WUU5w5BM5ykqTloX4hfqS5bgt/3FKJvJtjHdxnL7jU7WPHZMqqaq1FVmXMHnozrjDPBsqBhG0TqIdIEkWaINkO0FeIBiAUhHiCrz1SypvyU0YARDVHx8QuULp1PePcqVo49gVZXOgC/6JPPE1WN1CYM6uLJnFXnT5nImJob8Hsz2DRrFBvv+JzWhu5FtdGSzM3iyPHgyd93iv+Vn30G74D9wG6GMBSGDKXmzH+hNyzBzLZJ9LJBqaOp/LLuO7AFRNOBZLqxTBVdP4nt2+Gff3yIKlTkDDeqpqGqKg5NxaE5cGgymqrR0LSLBk8aFU4Nf1UrmiqjqiIOVUYRBWQLMCzCukkophMKJQiGErREEjRGE9TRi3cHxvm4sg7b/ypBWyWGk4TgBXHP71Tmg/r5vDi5s2B86nvjCMV1JvXqd8xaZxruWgmA766TKN/UxFsPrGVo+SsMve9aNrqaGZ07er/ZglviKfdTimOEPYn39jelG6BVFRD88X1u39C4gUvfvRTT3uvClwtZ5Vk8/PDDXHrppRQWJoM/y8rKaG5uZtCgQbj/y0UPE8vqGBqz2eIVCXkUQi6ZjAGZ9Onj4s+OefAJvP2JiNz2PJ/Wfyw3Xtr1qfZgKC7wYmKjbQ0x4/+m8OJeombxRx+xaOFCrrn4IgbmJKfHP17dxNzs5M1t1PwlzLRrcQnwi8knYUWiiJr0JT/9lyMUTZrwh4ztnEY93eMjVtSIsdpD9MIYzv0EbO6LZ+a+TnSLhlKUnLpu2zaOCLQOdjN8zAnE41H0eIxEPIZtWZwy45LD+gxutxsEkWg4hNvbNRbD9AhkNziofG092TfnJ4N/ZQeiI8Gfr3iF6c+fwPx1rzNm4pk0h5vaPn/SpaAnkr+PvH4DqV+2BYDZN99EpN5P4uVayp5dTPFVI3C4M9mw7CGaY48jFVoEChexe8Ed7WOwTZmKXWPZXT0QFxpezUFtvJV4dtvNUxQhrwQ4+MRtstNDn9O/T5/Tv89MYNdHb/Ai6YzzuXi5toXahIFbEnllVHKKuyJLnNy7D8/FQqyoC+ACbKn7G7LZdl2Q0vf/vQ8bN45l/o8wIiYDViX/54ec+jfcRcnzZybilK94Bl/OMDRfLmY8RCLqx4i1oscDGIkAhh7EEIIYQoDRA3ZiNk1ic4tNk9mKq74ZyTaTL0zEvUyjW/J6Mn/sibza0AANDQd93pInDzw+m1CGhjPhwiskyJdNspQYeapJkdNJT5eXn5cJqHsftI3JvY/9Wnea3RHP9c6Dyen7ZiTGT968kg15CS4YeAG/nfzbbvc1LINgIpgSNSmODayDzCYcc8m4IvsOVAwmgpi2yW0Tb6OHpwc7mndw3+r7GDhuIHqZzuOPP06PHj1oamoi0lZsbvr06UyfPv2IfZaDIe6S2GUZzPxV5yfjRKRDsHl7j8LlctC06XPqGxqoaQqweXcNZdX11DU00draSjwSRNCjTDxhOheftO+K42MuG8jap7ezo6wjgFAePgYa6vDWVvGvxx/nLz//PwDmNydv6HenB9nUUMsH5FCnZHJG+Rb6xGKI2tH9qcb1GJIJSje1aU751hg+vbeSx56awyXnH0c80kp+z4OLT3rwvgcRtg4BazeJsre488evY9s2HltgyIjjuPCs6zu1X/nZpyz9YB6aw4nmcCCrKmlp6TjdbtxeLx6fD83pandV7I3bk7QY+pubuxU1o352Mht++yG0zfIzW4IIgojoVnF50omqMDewmimLXsHfkpyK/vwjv+JEYSiVzY0AVC9aR+mypQA4czLw9cxny9pdZGzPZPv7vyFQkKzHRHggE6Y9wrK1nV1ygmSguJu5YOpZDD5hJDs/f41nP/HjK9h3hfaDJRINccr8TylTCsC2WR2MYLaFEF2Yn4mjTbj4YzqvNLXiEwVOKEhjpwn+tO5dN1YwGbwrp+/ftWO9+SR91gxtX/bO7NkuaAAkVaPPcVcd9GfZYys867dzydJkHvrViR3HsixC0QShaIxQNM4PV+xCTJi82acnCd0krpskDIuEYaLbkJAAQcQti3gUEY9bw+1RyfRoZGky6gEsLJZl8fNdq2nWTeZUbuT/2Tvv8Diq823fU3a2r3qXbLn3bmMb2xiwwfRO6AmEElooIQkhBEIIBEIaLfTeCb0ZjAF33HtvsqxidWn77sxO+f4YWbIsuQCG+PuF57qk1c6cM3NmtDvnOW953uEZBXTz/v+R2aSpHRerI0/ozrLp5RTULsII5ADNNCYa99k/3Krfc7jUfYIfSc3/NMyDtNSQ7iQ9uO9qxl5Hu8VlZ7CBdXX2amh7tJk/XnYDn332GaqqEggEWL/eLuT3Q1tpAAgopLd0vg7F4yRXTsftcHHZpXYF5Puei0LFGp585J9t7XREBNmD3+0jpUdZtXJlJ1JTXRtl05ZmKneGGDY8F12w2LElSGn2QCobtnHbGSeDIHDrQ4/aroRWrAzbZO/SEbbw229aahi6soayUDNZq/f9UPmhkDSSKPvgtYN79GLmiLfoV/gRK9YEMTQf+d1W7/d40WCEJR8uQ9jcHSNVRarXAhyGH0s3sXSdRLrApAmnder3ycyZmOIBrFamgWBZCNixTCIgCpDSdVBc/Oedd7npV7/qsqtoCvjqRVbf+zkOt0AAF1LAjuFJjwtUBXQu39ZuWZEbVNaG1tM/azL1NPD5O48B4JK9OFo1YNIHOtC3gsM7DEfCgz+tHyPOss+vqlk4nU3I0vmkpfVD12MMHzaNrCw7Fk1L2oTY6U/f/zUfBDbv2sxWl11qQ8Gi4ujhXbb71cJtaF6ZJ3uXkEzouBFwBrrOztpdEFfK2L+lRizoBqva3/uP/e4kDWCjqnFKescYK1EUCXhdBLz2mIT1tSimzpi+360mnW4abAnbzzZRECj2pOFzuNAsA8HSWJ7qzlVbUyjGSiqmTjnA0Q4PRKKhtr+/ePEtBKfEcXWzsfpN5uaeZ9IoBhk2YAwb166iZ9/+OJ0d/8+7K3T/aKn5EYcF9lf3KdUQJzK3CgSB0mYNryXQUBEip5vNyOvLy3j51hsAuODZpwC4Z/E9AFiGgmWmMWOjyGjxE2KxGLFYjGir3srUqVMZM+abZ698Vziz3GSUx/nq1XVk985g6Nh2PZSQHqNeD7a9v+zMabzxmZusNB+lhbkM6J5PVnqgTer+r0+9i7gxxuOPLSfcpKIHVVwJE5fZboL+bGsIvBLGrigjj+pFeeMG/vznPwPgA6KZ7Q/ZIX43s5ojPLazjmu755GTUUBPbTXbjQQ//J3qDE1XUYzO5vWtVe9SseU3jNrDyi4pUUzTQOyKfJgmZZu38dYzXyJaPlBCdB/hJrvwVFwuF4rLhcvlxuVxI8QtmuvrcHm9uNy2QqxlQd+CXE446xwSsRjhYBAtmSQej5FMxEkmkiQTCTRNRU/p6CmNVCpFStfRUjoRK46mV3ceVyuUo/OJLq8hu9kNrQW4E4pBBvDZxXNoqC0jGm0mGm3B7fIy7Gd24GjV7+bQP30smTcPQQ1Hce4hlJjYVIeDEoq6j2P4yF93PJ8yBviMRKKMyZPv7TSeZCyCgInT/92DTDc11CBYhfR0O6nWumaotXGVT7UEpabIiSVZmKbJNsEiUR7qsv1uUiMeQMPKOfkkNn4+hwGGyE7FpPgQxZekgPfrgvxrP20ipsm3CxHuiFMXfMRKvbTtvUtfxtKJE8hxp7N8/AC2RBp5YsdmZscLiKYS+Bz/fQmGA2Hz0lV0wx5n9nYXTkPB0f9MHJaM9ysowQ1fVOEH5vX7kKmX/aRD/7Zils7Do5gl/Ehq/qdhhlUEp4Tg6Dz5hD4uI7nZ1ljZbVPZ9lkZOVeNsPfX17a1zffkMePsGYiCyC9f2czSHTZ5GZvWRDgcxufzkZ2djcfjwe12M3DgwO807opdtTz++VoI5NISSxFM6EQSKSwsXrl8HJm+9lWlpumIgojsEMnplQHLm+i7toX69c2wB6npl92DjQ1l7deU4eWmC07c5xhKjCxaEumYa0KYLhADDpRSN7nFfnr2TGfG65uwVAN3nhttZ4yhR/Tni6/tKsfRtEwK+vVnUq/2zLA7exUyp3kzr9U0c213W201KcgETSgfUEK210NtRQ0ujweP342yD12TQ4FL/zWJGjmCw5JQTBEFifUZMdJTnUlNxRa7um+N2IOzJ7zLmkVvE03dyxOfvsC1J9vuhIaVK2jcXE5LTYyVm4toyJtrJwqZtSAKbKgBaio7HbsDrFY/iSQSVVXSs7LJzMnlQDJ9y5c/RUtwNSOG30JWVk/e/+B4/P7twD+6bN97yhCYMoREOM6WG3+Hc81q8i6w04i9/gy8/lFd9oNdCKqELz8LX357GZG6dV/g2FxCanAVhcPaK3qbpskHH9yJblQQCDiRpK6D6WM7luEmD1H+7ll5m6IxuusN4OmGSOf/JcD1C7dhSgL/HmF/NkVRpDbHSUmdyox/LgaXRK+ju9N7oE3IzYQOXcSSdIVGywREumsis95cj64apBX4OOK475YheX73/ZdtiVsW7kMg4V+VUkCAWwtihHWTx+vzuGL5F3ww8RwKPekUetJZHw4yOyGyIVjDETmHb+YnwPo/fEo33Sbfm4uqmfLL89v2aapKPB5l8+rVJMNxen2dBkrne7i7mOWP7qcfcVhAD6pI+/CFCy77o1Fwx1gsCzbfu4hQqj0QuKB3P4oHDiYtJw9BECn0FcLcv/M60wlNOgaPoCF5x5DyjcWM60RmVZB2Qg+8R+R3eb5vgj88/h/mpnoBdlyDKICFPe9d9uIS6luSTInB1ZaTBBYVXokpd0xg0MgCor0zWTN3J93m11FZHqSkNB2Anr17sqZxC00VdWR161rCfU+ceM4IXlu9jG7jHZz6s0md9n/xwTb0Fo2inmk0bo9R29xeBHRdLzd6gUVIq2T1pjqyFBeG4MQEVFOnItZMi5ZgstDMa45+vHnDA8hbQsiPrWg7xjhk/mQqePQEWAaWZWAJBhsyQjyc/xqFMQ0nDpyiA0Vw4BQVnJKCG5WjNSiSM/iqey5nTf0DTpdNW43ylUgvHM3A1E9Y5M/iXN9WNDQ0K0VWi4+BgT6drjOWfire4EeM0AyqZp+PG5OoBH03foV14mUIosicV9ZTFysC0tEkkJPd0d07GZ6TwuWQsAQJSxAxEbCQMC0BCwETAdMSMEwBw4L6aIJgwiSn2xt8+dW/0XUflqVgWV4kqZhxY+8jPb296OfChX8nFn8CQbDYurUnWVm34PPt6HQNXcEd8KBJzSixetxF6Qdsb6UEkAzCUZVgRCUj4KKhOY70OkhA7rmnIu4h2Ld+/X8IpL1OKqWg6xmUFB/d5XEXqbk0O9M479N38GLgESw8InhF8EgiXknCK0t4ZAdeh4JPceJV3HgUFz63F6/Th9ftw6m42ZySGECYjVgIXfCQlGGyVE1SZAqMym2PORpybn/WvbIeX4tGQLewXtrIl94tGA6RniEd10HWiRx4Yi/4xNbd6bOyVeVwQwh1Ujecrm8+Fe1O6e6XuX9XdoNH5EC1LDeF6nh8+ypkUcQ0VSpC2xmc1Z9Mpx+XJOMSJZqxydPE7CLGZJeyefGnfBUr5eUdK7ikh13HymwlixWJCPuOtjs8UJcdIq3WR/nRMaaccH6HfYrTieJ0MvboYzEMg8qv59F/bR5bfz+TmvEaR51qWyh3W2p+JDU/4rCAEVQxkzpNb25CkASQRARJQJBE9AY7xkNvTODsnkajS0QMt0/Mvswszvvj/R0P+NWfkYGsSBVE69DM3rRoD4IkgGERmVv1rUnNo19t5dn5O0imTBKpXvgEla/vPJWA217BNkc1Rt4zk9WV9pfsFeByFKIOgX4xk5l/+Zr847ozZEwRA48sITy/lm1LdrWRmt6jB8LCz9i2fONBkZqMnABSQKV6U7zL/R6/QqwuybTjevDcF9V88MYmTj/1Aj746HVGrarlWd8o6LB6tN0BlarBEUsq7E1yT+7JDvOHxgD5XpE7hyskkxpJNUVdhQMRCUduHDNlgm6RNCyGxPvQM1mIKlQQIUmjFSWFiWYaqJjU+Q1qzRiZhsmrTX7+8ubHbSPITpi4igsYm/iCYTXX0FBQhVOQcYoyXlFmQGlHnRWA7jnH0hj8iFq5Ao8qYggWzpTJcPNT3r/xUYJmMUkjj9EDKgmNyuSnqRL6BWOcvnIXtaEIKUtANwU0S0JHIsWBLRIe9wRcrnQ0rRFDj5HSd+BwfM2Spcei6/0RBCemGcLl2o6q9sXl2kI48hTTP30Dp9OeCA1D76QKvCdSuooYtFNdd0w8AdMDVp4ToSAduTAX0e22M5EEAQSBVOp4Ap4i1j2ynG4hgxB2ic+UKBMu+YLNCy5FQyGBl4SYgYRFA4PYkZrGiG7HYjoVwjurSHc6SXM5yfS48CoKUdcABkYVum0rZHGmTIMMcUkgIQkkJKhzq8R1J6awt7VVB0KtP+AwU6RcvbnZ2sIyvWt9lwdXVaC6Ja7Oa3eL7qxt5t2Z8+iTkYFcmsn2ZAuhnTEyEhIDQjpNWi0ZyoG/LwC11WGygBpM8hDarEXNjXEKig+sDLw3oq2uL7/7wJ+ZLjynHXD7+sUsUPfUCypmQdNejVrv8alrmvlHwQKeHnkOY+bO5Lc7crl767sYopu4ZKe1y+I3zwL8vvDFk2/gaZQxRBNTsjBly65Y3spsvRn7v/eSJBE6x02oppHcRTJaU/szL6gG8Tv8yOLhQyUOn5H8iB8UlmGR3GivlhIr953maKXsB6DqkXFH9h0sDEDJWMjqDWc8hvHZ/cgLHyTzgn7IuV6aX92I0v2bP7h2Y/raGlriKUqzPfglg1MHFrQRGoBMn8LqO4/DIYssWVTFpdPXo18+CFcsxY53tzIgbLBu0S6GjCkiPdPNeodAqizY1t+XHSBbTmPHjnL2LEf46esL6TmogJlP/x012owoQnq3HvQaPopEfAWETbat7E3vER1TbNNz3bA5jMMh4h6egbGyhbBmB0c6TIM5fb1kZhfRkIxSq0ZoTiaoVDVkUvy1QkOX0kCQcfn9CLUmg4uzOe3oduXZGY8tI1IVp8/vzmnbVltThf7QDi4bdSWjJ3S2HgGc91RfPvV5OVLtrDvS6BYBkSqHgzRhAUWig6SlEzU0lhhJPtj6MgWbXmJDyaPocjoTy6/Agc4VrfI040+0iy5apomwJIMzs+5gRvBmZg4s5tVu+WxL2VaUzeklnHJ1f/oWdrb8WKaJrsZJJSKkEhG0eBRdjaEnonz1+etE0kQmDLkGX2H7f8kwUnz51TXoej2WpWJZYUAlmSzm2GNeZ+Omd2hpXoUgqxj6ciQ5SDzehN+/78l4/gt/xbxCI1YrUKr8DLViB3rVLoxdTaQ2r0dIWe3mQQuWnXcRU5rBpVmsG5OJO8eDnjTwFzpodrWQ1HujpUJoqSCpVBMpPcG92tXghdeaVEClLYinFaJp8FiqH6PjJsR1TqvuHAez7ogspp3Rn6SWIJ6MEUtGialx4lqSqBonqqnEUiliukbSMDm9/1j+td52Gfzzi1dxyw7csoxpmvzD6I0vHmPze7P5zXsgGBouQ+cqdfdnye73onMpOxSD7WWrMC17TBOfCaHHVRS3G8XjRvF4yOnXk+yB7S6YEceUsn1NMyVmRzdGsDL8rUhNJNKqkaPA+x+8g5bSURwyLqeC2+VEcTjsGkyqlzSSjP7sc0wEBMBrabw6uBslJUPsMegmPqOWTcceR1RP0pyMYCCgmiYxXSNhpIjrKdYHq3l53ZP8s7qMC/tfyMzxE/n1mvnsSnnBMilwVHF2USmnF/Xdz8h/OGxcvYr+O4qocTWRyEwi6CAaAg5NRDIEygO19O914GLFw0bb37ctC2d20DULqsHDykoDP5Ka/1kIUuvSRRIovGOcverUTUzdgJSJqZuIioS8O6shzUlGk7bvAwJICqx+A23N2yimCgJU/Wc1HsM+xp6kxtB16qrLCDVUE2+qRmupworU4ojVYpVO4ogzrutw6G6ZHjbURChvjGMBb13fuZpzmseOM+nRGsxcVhFk2pReMDyfOXfP72Bpiha4KaqIdyjUmWv42BAu5/UnH+eCX1yDaZqUzUlQNqcMgbNQpBqU7OU0bVlP84bVWIKIICh88NfbKegzjrwePcnuVkx+z2Jy872EEdi+M8Tllw3l75vmseA/WznyuGP4esksXnv5df50213kuHwMpKP16v7K+WDpIMj8vawKSy7BKe41oWkm2l4u7mQigQxI8r6zg07092aLWsHXTokTIzHOT6QIWilCokjI5YfSSWR58zn1mHvaO+kpqv49ksZ4LQZwco90+347+lMk1bL3ZCyIIoYnHyley7SiV7mv57/Y5rIJzYxuBudtj/P2lh38vgtSI4giDrcPh9sH7CHmtuIlTgx8ytqBAZzeOzv0kSQHxx/3zD6veeSI9lThdev+Q139bcRiDfskNdtnz2Z5fQMjeoKZLlIw7UYc7v1PulNmrSJdTLFpcldh3Z1FCTdGE7B0M5fmp3NZtp9gUqVFVWlJakRSKSIpnZBmMrql3aoSvXIgmRluEskUyaSO9dwGsOx75nZ5cbu8ZJHb5fjeW7uAt6preWT1TpDta3neLCauKyRNBaPVClEQaUbx+BEQEGWJQCRl8y0gMt6Nf2GCc877KXFZYP6j96PV2VbF+TNftYs17qFV5VXSufrlV9re5+b5yL5nIju3tRAJJmF7iMzVTRR/y3iXSNQeWFndDv6xcW/LSKr1B+TuJj0zKjki24nXoVCtmbwp92TMNgPHlqW4TZWoWIiU2sL2rR/Tr9/ppCtdu7ROKhqAU93A02s3cevcW3lg8gO8Pu6UbzX+7xtqMkns/XKafCnG/u4MHN8xLktVk3hMF2ZdE19/MZMREyYcdsUs4UdS8z+LhroGLCwq3M0UyII9sSsi4j4+Eq5sF+llUWJRFa+vPQ4n2JKguT5GuDmBM+cWBvQ7kYc37qLO6aTSlc9ZmT04pXsWMTNMUGukev7HqMEa+i25k0IxTmHrcVKWRJOQQT6NlK9ZB3uRmrNHFTO9ugUxqCEALodEeVUdtz73JQ1JCxF47/Yz8Xs9FBWn4QDKa9on25TPQU5juyZD9pAc0isq2Lq+gX5Dc4ntaqYo6mWDF8q3W7x03wxizQa0yp5ndU/StLOAo067gqIB+WxavowRRx1NpDHMxw8/Td32ldRsmdM+YDGApAygoaEnQ/tn03NCAU1f7KK0/1C+XjILQYX1FesZ1K1du2M3MmmmQegGlk5CNxHDSdIyo8CQ9kaGSaEOa26bS+qk7oya1J3s3DzK5a3IH1ssTc1lzMSj2NC4gRtn3UhjohFBEDAtE0MQ8FowzJGOIpjkGTr9wrtAMyg6pQtysG0mxS0VFAOIDl5cdxv3l17BPVVLKRA0FqRZJF0S8Zr5uPOOZNvsswkOVUjpGQQSBptaCc2EZBnDep3FaVte5h2tiN9F6hH/0cd2w2X1BtkNjt0/HlC8oPjsWkdfP4yeZ3/uJHfXE/fBwOW24yJi8a6tk7tWreKD2e8y4qjpyI0K46bN6kRokskICxe+gcvlwePx4/PnAU6m+A++lEhl0ibYvXxe+uXsO9C16uN5bX+bT6+nWgBNBF0U6K7DpxvruOuJJpwOCbci4XZIeBQZr1PCp8j4nDJuUef5Jp1woBfnpbZwUo7M8QPHIbRmIFmWxYpPnuGpLQmuHVXAsPPbSaAaTdBwzzIA/AttVXGxMsiIacPYXFpKdSupAcjP6oUYFwgbjYTVJnyezhkxoijSo699valemdStbkJv2HeR0f0hGrK/309vjgMuZl+STX6PQSTiMRKJGJqqoici8NbP6Fk4FXHqI219z14/n5pokISukzAMytQIK1s+5pKvN3LNlvc5+6i7CaR1nXb+yxG/ZPqO6Xxa/im/HPlLSvyHJj39UGP+6x/RM5lN6rLc70xoAAQE6pzN9K0qQKwSWWnOJ+gIkub60VLzIw4DiLLIMnk7Y6K92frHryj+1Vh8Wftejabl+4BGairCbZkPX7y8hv7rQyiAnXAqs/7cM3kxvwafAV8svp+UtYUUMRQEvOYY3FYAk1JC/AeH4w5qz7uP9NwS0rILyBclFr9yF0O2Pma7MPZI+zxuYD5FO2upWtNAfiupWrZhB4vjaUiYGIis3ljOxNEDkWWRAlFi2/ZGtr8zHyOh4fKmk1OvMeuu+Si6SaYOIOB7fQs7Xl2DIrroLpcwLphiu1pCOK7hyhSQXJBXEiDVWoE3GU0QyMjkiKm2sm5mQRY/vW4KPHs/Ud1LTSKfzbG+7EiksUoO8soni/Es3kFLWEVNM/jbU1/TTyxlvFLOGx+8x59/2ZnUrD7mFJq1OG7JwerqNC58Ygv9z+r44BhwRj82zthOv4o42ytsASyfL4Dv532Qn6pl07pqmAjnfXIeAP0z+9urb0FkarepXDr40g5+8GXPHkVmYxldItSamXThW9D3eKa1lDPt3avA6wMtSklVkK29fbSU/4dw9edUsMYOKFEkEh4QLBNLEDkjzT7fucVFvNSYydebFjIRwDLtc5iG/WOZ2L6djjAkAcG0EBVfp30HC6/H/uwmE3sHTNgWmv98/jm9+9saOwMH3Y8zrXMM2FdfPcuSJcG290nZARNOZpCpkdATOERHlzEGT1fWc8e2XfRyO4m3ahRti+97Qjcsi18QY5KiMKZvDoZqYGkGlmYi6AbzkjpbPCKxuE5QVzF0E0O3MHU7xgpzj3voEFh8fXe65/2k03kEQaC5qoyBUYNhk2/osM/pc5N75xGUz9lAfF0jziBkditl55pt9KjtQb24mKKCAUiiRLIpTMpU8SrpTDr3Uvqc2LULdDfkTHvBYDTvvwTLvpCX2MZAoZwqM4fuQi1ZSgYujw+Xx8duOpWqXodD3AUrX4KVL1E99LcUnXU7Rw2a2Ol4ieSZ/OW9c/hn8zKUr//CRSc+3qkNwH1L7mNX1C7pkaEcPqnMe2LdquX03pzLtmGNTOl7zIE7HAQUp5NRfzqdUKiFyH3rECSRoBok3/vdkz8OJX4kNf+jSCQSrJZ3UjysJ5krJCr/vgh5Wg59jh7RZfucYj8mUPfhNrbPq8SKpRhcb68260/pjuKUSH+njLS3tvNpa58WbujyWLuhFl1O6eDxbe9X/P1UxkbnggDRaAhfoOMDo9AhsyuSonsPW62zZ1E20MRvRrq5f4XKV2vKSeomTZEkpmlRnTBwLrUAB56CZjRBoU8S2CudNV6UxChxktavkC0PPILovJSCEp2zbz2NtbOWMOf1OgTRiz+jhWHHTu54EW9fhrn2fSqSPVkY+QnNlu17NszP+DK7tW1ja2CdAAFZYlhRH6grR2rqWitEFEWyXfbEXRO2Az3z9qqfFW5JMKgiAQgdNEJKe/ZhuWtDW/plobeQXbFdPDvtWQJK16R1+XuXkVW7nphnHxaDcGtNpozS9tfLP2/bndeyiaaF5+HvPokl5b9DEGCA7xwCeUfj8JVgrbGvU2lV+R098ChKZ37JO2rcJjWyC25vlwhog2lCMgSJFlDDRDffgWVt6HqMBwmfz7byJJPNHbavee89Pli+nCzDYFjmMSysXM62zV/iXrEMp+JAUZw4nU6cLhcrV9YRSDO44vJfEYs1snBnBS8k4IWYwr3z1mMg4yKBQoowAbJowS1oVFm2u6s8oSIKAn09Tm7vZbvYknqKOXWb8DncyILIrJo1LKndzPb0CPk9TubX5wxC7qJUwQX7udZYIsGv//0anzbmc89og+55pftsWxfWSNuHSoDicdL3xBFwop2KvuY/XxNYlSLDmcklf/w3Gf3tSW3XnxdiJg0K7xiHeBDZTIIggCS0lVr4pigaOJjps8+lpfRnyMediyvQ2WKSqt3UIfTcbN65z+O5XWncMPUR3p9+Lh5H1yn2z6x9htc3vY6AwK1jbsXn/PYE+/uCYRok368k5Nc56pzTD/nxE3F7gSc7FULREP0zD75kxw+BH0nN/ygSCXt1tLxiCVFHimNSQ8n5NMzGzTPod+VxnYqv5RYGWC9YdA/qNIVSxGSBrR6BVK6b4yfaWQOLmpNocQ3DA4a3gewMD6X5aSjzNxJcJGJaabh85SSjpV2OSSsaB5vnskkeQD9fZ5PmIMHBct1ieJb9IOndrQDYjJoykCyd57bIPLel/aGVgUDGLYOp/tvX5Na0T+i6lUK1EhiSjjTAx+Cfttd3yi3tQX1lJY2V9gT/1QtfIjmHcvZv+pHfy1ZFiQZjLJuzjuatDTSXTUY1zgWho9CW7DmG34ScLMvQ2NLDR5bPycbtzSQcIg9cM4G77poJwMyvnmXQwMkU5nddI6ax9QGyN6nZjY39A0w8tWNQomLI4LTjCX4z5jfcPPtm/rjgj/zrmM4SZeHgTkatfpdKWSbY97guz0G03n5N77pgpTOjPyNOWs3Gr5ey+a2nwR1mwg1uXN2nAdBfnc4mZyFftsTYMPNNXJLAQATmCjmQ0x8aNtkBt3vnGYsieDLsH2DXJpvQrJk+Gln0kFt4JtlDb+56zPuAx5ONZYGqtbRtW/7663y8cSMlhsFFt9+OrIi89dd7SVlOAsk4ekpF1+MYhoRhOAAnBWkpAoF8AoF8lIgbqiNUmBkUCXVcmmMSNXQWtETZZYQZ5diJy1XA0sh2yoVeKMRJWB62xFXuXv0Rt/SfwL1r3mPOlkc7jFWwBM7STkHZOIM/3z0DHRFTkOz4F0Gi37DRXH5616vwVfM+4Xef17E9lc3fj4hxzumdLTR7oiUpkOXZf4pQrCXClie/JifoIVgg0O/KSTg87UzIPTyH2IIadv1pIY5iP74j8nGPzEVsJWNabYzG59ZhhjWkTBc5Vw5hh6OBL5tXU/SvJVx589UdzmcaJrqqkUpqpJI6qaRKStXQNZ2UmkKNJ+lpKdQo71Cz+RMkw+KoyWs6WPIUzZZ9CA2/Dr1oPCVj9lPLzbL47ccXkmVZTBz6cyzLahPb3I0F1QsAePHEFxmR2/UC8L+N9RtWkp/MouUkFw7Hd3c77Y3dsXuKy/ljoPCPOHxQtXkjAPXBEFleD819VOTtOlk7stjwxw/oecMxOHxuYjWNxOtaUBsjOPtphCIqYiyFP2ERiCtY2wzWflzGkFN6Mm5aLwCWLjub0K4amnbmE1LcTD73VfSm14hskcn6/UVY0TBG5U7kPh21EcZdcDuL3xAYu+mvLHriasZe/UQHF1SktVL4lWPsyTXg9+IyVWZsCvL0GUMIRRPkpLnZsasJp6wwuncJ3pwMcq4cRry2GU9uOp7CbBSfu9PDajf6jD2S2h1LSKV6Em2JMGjyGLYvSFL79utsmjeb9YXXYwkygiBiWSJOp4f8jAq69U0n3Hcc82bVoPgcCJUSgYhBL8XH81dNRDdMTnx1KVs3NLItGCcue/HoMX5d/gil6x7ngxuWdTmellb3RK63nZRt/HwHtZ/sxOUU6TuxBLen44PLaTggGGHFogXkWF6cloN11WuoqtyBorhwuly43E4csotopJoAEJl2DxPHXLOPD4tdywjHvnVZw9VbefPzT5CyvFjqGB7cXM4Frm3kZhTwh3yFh3aVs0Nws1GX2CoXghOOUCugz/E2qalYCN2P3OfxAYYX3U5Z+cM0uFqAFtSqF74xqZEkGcNQ0LQgABunf8onGzfSwzC46E9/QlLsSTovYSGQ5PK7HujQ3zQNEokWXHvEETRFNgOFDJcr+GxSe2mHZLKGBV9PpDjvp/Trex0VkV28Ub4CzTRJkx3cW1/AK+EevLJkF96WHXiAm458BFVPMSl/AGYkxHvPvUUq4KRb99EkVRVVS6FpGvqujeysqGBvNNTU8OiD9/ESUxkoJfngwkIGDj2wJvXEQUV8sDbErNcf4pgLbuy0v3p5GdF3y0gzFJKT/Qw+cXinNhmn9sbVM53QjHJSlRFaKiO0vL8N96AskEQSq2xy7CjxkaqMUvu3pTQ5wiBAdaiWv9/1VwwMdMvEwMAUDiyAE+BS+rm/wkXQdk9K7STLMBI0LrmXfEDcXo0zuYN47fMIXj+iPx3Rn4Hpy8DMyMHl9pKM7GKZmOK0hiL+/dgb9OnTh4suuqjD+SzLQhTEw5bQANSvKccjpjNg+Ljv5fjJZAIfoLhdBNXgj4HCP+LwgF+w8Fds4canXkTeI4hsx0cL8czz0fyPtR1WKg5AthQ0yyQlmOiSjo5Jtiyyc0kN1WlO1MYEqaCKf8sNFFjtQYjRiTEchZlYW7yYdTVIBUWIg9K7HNfY83/P4jclxm38C18+0ELOMddgxRpRW6pJrW2hWOpDXqA90yFfSrIhlc7cteXcdZU9oeztLc/oU0xGn2IOBoMmT2XOy2/Ro34G6077N+m6yqSWnQgLLPKAam85CzIdbFGcTJg8mD+dNbxD/ynjbS2Xf1/9FQCZgzOpbGrmd/O2sHWDHcfx6ILNnDpyAtfMbeCM8u182msVn37+GHkZJXi86QT8WXh8WTz91q28FXMAZ5DdWoyxvDLMV+/aAnJVKZPjop1dWHFZpX9lEVSagMnEgpGkGT74dxUaUF80m7pBL2BYtiNu7ag+1L7mY+XLbzDZY1ujnJ6dCJKJIFlkJKsQgeRj1+wRzOsChxtBcYPTSyJaB0CWJDNzjMpC53Ae3BQFtgLZiK6MTloqf+5XCpkj4euHYfb98LMP9/u/yer3czL7XMpXs3qTrnro2fvWg/iPdoZpuNBTISJlZXw4exa5gsCFexCaZEsLdZLEUF9n14IoSni9HUsW9Elt5VbrWU4e0FG3qabmHQDc7lIAuvkL+e2Qwrb9p5ZUs76lglU1c3i/6nNK/Llc3ufotv2L6m0rw6jx/ThrfEcr2q133Ueau73mkWmavPra++yc/joBI8GNytMce8xI+vToTcvGhfhKBuDwpbe1r577NmqoEVd6Dq7MfHBlACHmbm7iKF1Hku2pwbIsNryzGN8yFc1pkH3lELJK950K7x6UjXtQNqZmEFtYQ2R+FYk1du0y0ecg+/LBKAU+kuUhmp5fz0i1B7VKC/6MNDL9aciybP84HMiyjENxICsO+73iwKE4cDgdOJwKstNBU2wtVXXv4TC8mFa0A6kRRRdyqBgoo/r5RVj6kk7j/eO4n7MkfyACJi5UktLveU3UCKgm4xd8zrYV7yAoDgRFprmxBsVt0CvdQ2Oojuy0g9Pn+SFhGAaZmxV25jXQWzn0VhoALdEaB+YQ0E39R1LzIw4PaPEoPkXuQGgAepw6nuDAairfWIqc68ZTnIEzJ4AnLwNvXhaS0v6RqdywE/WFnXTXTKxPylAAybLQBJGoJOAYmYtzaR2hbUFyivKBCHp1NVJBu7j9pvUrmb10DTXhJN5oORfq7zHWsld0U5KfM+PjZjRkmq0AHxuXMlrY3GG8r900jWP+MYeyhm/nl98bLq+XyswaTlxpC6/FBkxEnXoCBSceQcMVVxOI7OTXj97OxpoIxw3s+FCLBpMYKRNHa0Xt2hInr3tbuHuNBh4FR4EbqSaBurOSSZefgPzVRwjiEYjmKn5b8zjU7DUYJySDtnKnp9VKsnFze4BrzIRZz2/gmItN1JX1eHUD0SmT360ETdMwTB1HlcFPU5PRe9ZSVzgDAT+qtBRMiUTmqYjNm/F4N5JXFMaPB1prZ4pOA8sQMFMiYS7Hy3SkxgUIlopgJREsDQEVQbBTeN2SlxOa/kyxty99Gldzx6hsqkKNpEwT1TCI6SnuSHUU7ztrWxTFasEx7h0iQhLlzQs4IrEZr+DAKco4BRm3pOCWXLglJz7FYphigUMAXz5hj06i9kMcjgxkRzpOJQtZzkSW9y98ZlpudCPMjDvvRCst5cwzzkB2tfeZ9eabpBwOxp955kF8YiCl1jNIX0/f7I4p6mU7HgJEiou6jnwpDRTx2YZ/8tbmGZS63TxybEf3UzhuB4Druk1cY0mVu+//J25U3IDHY5OajZu28eZDD+Fv3oFROIgjR5dQu/hzZs5YzswZl7Qdzy3rBNwCDlmkqqXdUqn70kiU9AHTxBJFPv7kE0499VRSaoq1T8wmv85DU57OgKuPRnEfXBUlUZHwTy7GP7kYbVcEZAklt52EuUrTKPj9Eez6y2KOVQezOLGDaTee0cntvT9sL5tFdf3VCAIUiD2oT63vsF8QBNwZIzHry+g941OsWBAzGsGKtmBGQvzjsyqWeAdSTJRrRprEkhoLo43UmX42VBWRcBYgO1RMVUeIaKTFHGSHnPSr9PPs1T8n5+Rx/PziO9rOV1H5PJHwOkRRwefrT1HRhYji90Ms9oXl8+dRqGbgPPrgFnH7w/y/vEVuNI2klEKVU6RknZRsIBkimeSjSbaL+0f30484LJCMRXF6uw5yS+9VRPrtB6qqA3m98nkjup3cPIvR5wzDW+DFme5sezAlg0kal9aRbIgjD+kGrMeosQmLlkzyx8df4PW6Enx4KXYYjDVjFDtqMItGI6aVsGXdEqZJy7g3dSEvGtPIIEK2t+NqvzAvi/6uBDVdC/t+OxzRjVVlteQmHUx57+m2zVW5PcgXa+iZ46NnTsd7t+SjMpZ+Ut5hW36lCiPSGRZt5N7BvRl67FCO/sNbRJpMFKfCsY4QXyWymXHcB4SC1STjYWKxINFEkGgihGmZ/LrZNnNbpskXzz5GbbAn4OLYG4ay9rkNNER13n/WjjUZ7pbo7rTvvdj6A5Aq+pBo+ooOY0tPTGTKyH+wccXH7AreyOiLTyQ7vyfbfjcPrcRP8XU/2+um3NflrbJSKcymeiIPLmN64i3S6t9DrJC4+brrGblX24xVc1jcEiJNsMhzOjAR0CyLZErn8YROKPsm1jT8gympXSRMnYilkkyFSVgGSSxOzEsScthZQ0F9B8Etf+o8oDYIWJZENJrBjrJJOBwCkiQgigLExjC4cTJ5JU4KmrZhfbmTunmVCIqM6HKwuNYOWo7GJbT1ZXi9Kp7cIhyergOtU/pyJLkrYUp7rKLYdQTu++se5N+bP+eEvF7cM+U1nI6O2ih6xCYzOypsy9yyTTtxoxJ3ZpFb1I0zjhnHk488R2jB+wgOP70uvpkzTm2tDn3R9TStncfa958jkJOH0+sjXFdDpLmJUChGpjvFSdfdiCgrPPf+bFoHiiIrrFy5krVr1jJU78ZwtZTYaBdDz564T5ftgaAUdh0PJjplMs7sg/XGJvxxB0/87VEmnng0OTk5eL1evF4vkrRvzaWy7b9AlEBxXIKZWIBsdtE20YKpy8hFHesw6fXlPDvPJkFPnDWIwUcMBuAq4Pn3ZvOnqhhHH3UCl515NADlc5ax8D+vIcsKiVSEhqYK1CXVrO6/mGGjx5JIVLN16z0dzuFyF5OT/cNV6zY0HXlWmO1pcSYPO//AHfYD0zQpDudQlluLlSNjqQZoFqJmC7Juya8m22eLgf5oqfkRhwXUaBRXF+b1bwLF6SRiRnHJJtmDOlcRVgIKpmWhrqxnp0NkIzpvL2yiW8VLzK8xqdDzuWdEiPPPPAdZUVgz622Y8yJL/VMZ+5Pb6HOOyZzHr+f2hlcRMXnSOI3Pon6aoipZe2jlFPgdLGk4yAI0B4HTh57DhyuWcNlMlUQ8jLt1MhN79UdcuaCtnakb7Jq5iNUPvUdd7ijw5NFnTB56ymDz5haUhMHRa+Ns6mMwukcpAKV+keUhhRlzV3DlaaP5+INK3n5rKdfffF6XY/ls7Wt8oaZx800PUFI3HwBXxq+Y/fJqph6VhiF4UAJePn19O84hWRT/fHCnY2z54gqKrMvoMeYXiA43hhrH4bODb3XdNiUrTntCdVgWcmuK+MFAcDhIzluMRRaO1hgI0+isVgxwzvDJnNPlHrhaV5k0bxZ1OTdz4bBCRmd3Dkp+7Yvh1AoZnD36eVQzRCrVTCrVQkqPoKeC6HoYXY+iGxEMPUZT8yr8/gbS0x0YhoVhWJimRV04A0Gq5KTUSHRnD1L1CggySA4EQWS4XMoquZwXPnyV45jLBGyrnYFICoWk6EaTfKQcfgyHn/6e1TRkKbz59cXIshdJciOLbrv2saAwe9MjOGQviuzFKftwOQJ4nZk8s/EtAP52wgdd3pONG+y4t0gwwhtz3mDtrK04gFNOnMaEIb154rrZQClajyO4LC9A7DfXs/E34OxrB46rW7Yw9p23cQ+yZQPu/3QTAbfM+WO64ZGbEZBwOnM4dmOYGctmY/mz0HQ7o1E3dNawkyPOnUS3UZ3LYxwqeIfnEplVSc/6PFYlynn33Xc7tREEAUEQEEURSRLxeOrp0bMSr9fA5bqCCUfexrpPxxN16TSs+iuyMxvZnYfsysHQazBMR6eJztyxDhC4KD6TwUc82GHfjHU1QIAJw9stb9vmf0190w7ysnoi6JCu5DDAHInzvSCMhoWLOpKXbt2uJCvzwEq9hxLL3vuS3KQf+bwDL0gPhHC4BRkJ97Bsxk+Z2mWbr6u/Bn4kNT/iMEEyFsXl63oFtS/Mfe0FGsrLOP3Xf0BWFMrXrMBMBWmoLODF371FRr6buvIkWHDh3SfgTfMRl0QCKRMW7OIlNBaZ2dAqe/LsUR785jCk1gj93N7DYQ7QuAWwlVKPuuZR3n8Qbgu/ioTFY8bplDfFOpCakkwPnzea1C7fih5LkDu8F0pg/0Xu9ocJg4/jwXwB2YRtS79kyGTbDeEdNhRzwQdEK2oRZYnyYycjYNETcKktDHjq7xT2sclC42fbiLxfgT9hMX6lm5eM+fz03In87fIpXPTQ51z7cSW/GenmHEcDj+xKY+rKTfQf0Tk18vwJvVE/X0sF6biVHDZ6+zFesPC1CHw+PQy0ExBjXROhzxbjP35Mm7XM0JJYoo7TVYgzYGu02Gq9NlKaLWDm8tifhbgs4jAOniBaukFktYkrbSdK8QCYt4iGtG/uCvTLTmaMm8Dwrzfw1y3LeasLUiNZKXTJh8tfyv4cTJs2fUQ4UY6q1uByRbnssr902P/2I69QG2yg+M8ddVRM08SMxjkx1JcjExpqMoX/vfkYlkLVqN9iqWGsZAQSzYjJIKIawqE2URBKIicsdqYtwSGYOASL3YLdWBrGrgcxgL0VaXbGbXfMqJeG4BLBJUp4JRmvrOCRnTSl0hjOcOQGmU2z7NTk9Zml9EuFeObX7wKZmFaIX119KtHp84m1HlfdsqXtHOXnn8+AsytIjvs1T8yxbWfb6+o4KeenAEycuBjJAHf1di79y2955OV2y+Q1P7+KrO7ff9xIxpm9ST5hfw6z/ZkMHDEYVVVJJBKoqoqmaW0/kUgzLS3pFKdWkEyW0LuXLZvgkAJAPWuan+p48HGQU+1h6F7nNDUTn6byquc4Prn9PRQJVAOSpohqBehlNdK3Rzs5iO6oR7dSTL3912z6egVKjpeszwxqMuwsuvz8M6ipsUnqmDEfEPB3Xlx8n6ivrCZvlcLK3js4c8DPv/PxQsEWJMDt3/fCN6gGgR9JzY84TJAIh8ks/mZKmMs+fAfLsnjokrO46L5/8eVzT2DqpYiOYqLBLKJBAPtBvW3ZVoZNGUHpb0eTaEjQ+Ow6/iB6MH/Sh9vfX8/aZJI5nxjkGTvoMSybnBI//nTb2mOltxeWE0SRM371GB/8S+S3oZcRMdnROJRR3TPb2rgMP6YQpeqtXeQjsmX5Vwy+eT+pmweAw6HgSMsnJVVTu2R2G6nJPmoU9Y/B5ouvxF2/DQGI9RqDVNyd3Pkf4dKaoVX269SJJTw3vZLetbZbIvRlgpZJTRTlZzP9zrO49O/vcf8qmZMK4mTvcHDVi0t5NzeD7KKOk8jU449g6vG76/3aKa+mphGtbCS2q5FYXQuxujDRcge5lkxktkjo03dx9RTJuPBoDIftwnAoXRPYVCqKZUooTvv/Zma5cdXH2XzbfCwBTFnEcskIbhHF2EVefgJBkREUB6JLIbKoGV0vIeNYiQEJH1vnLQJZRDd1RETq1Sj5BygxsBt5bj95QgObE13HVWRLSVSzutP2bR/+lnhsJ7LsR3b4qA58BIDLBara2d/vdrpQzc4lP0RRRAz4kAO+tmID2kcqunsK3U/9zT7H/fnDfRkUbuTkyStxtMrrp/Qk8VQLmp5E1WMkUxFUPYqmR0mmwqipML9IPEbQMAhkTyOmRYmlYkRSUaKpBHFdJeiuYVFOEoflYGTjSIIumXlDhjMvCq+eeiu1yy/i77UD+Pej23hg20JGnvEUtbFtzKl/h9KGIAN3NWEW29e5fPoHOD1DUHEQ3LKIuNAL2R1k63sPs+SzMtKUHHy79YiAW6++Btd+lI4PJVre3oqMRI4ZIFtO59hjj91n23XrZ/D2Wwvp3u0GRo9ut/v1O34GvRNN6MkG9Gg1eqIOXWtmdc2DJMT0Tsdxjp7Cb2+/mEU9h6IfMa61UK5Bfcwg0LiRAc6OpT9cPj9EYM3Ln9C3pV/rVgn/0fYzdOCA+xm4V6D4DwXLsih7fQmyQ2DyeYdGlyYSDJEOuDzufbYJqkEUUcEt77vNfwM/kpr/UUSDzXQb0rl+0v5wxaPP8cz1tn7Dq7fdjOx0YqRqmXr5qcx/azP+LIHeI4tYOj3Ois+2s21ZBSdePZWMPhlk3D+J0t99Am/Ypvw8QaJPpodwQ9KOcwAciosWAhDpLMR2+s2P8uFDMr9ueZ57P5CID34Qj9NNRUWIR8pseXozX4ZaE6ula1G7b4JReaPZUlSNc0l7qnXG0D5U+PMRUhqWx4cQj5I9eRC5P7uCLSfOovznV+N8/w28BVlk+Jxc+udxtOxqoGLJNjYudPPBP2dz6QNnE23awKWDHqC4eSzvbjuVvgUhqho8/OyBT/jPXWfjzdh/4J2oKAR6FRLoVdhhu6kbhD9ZRHS+iborh9q/rkBN3wRHgi5FujyWaahYZvtjIO+47tTPqsTarUqr6hjNCZyCAEI6oUY3tlzwbuLhRZbrcY49m5F1O5ibU8SsI0/khdmr26oaP9hT4vzuQzqde29ohk6j6WeIs2WfbZxmiEWvjEeyXEiCC0n00Ji/CnwgJAQsxbYySdELGX7UVTidncmcy+VGtQ5QnLUVghHGcnZWfd4T/U/+N/kvn8PKGb9i9KlPAuCQXaTJBfvtV1P1DOmij4uPfKTL/Y8++lvcbpnLL7ctTXWhEAsWbWS0MR1ckFlSSEuTTRgX9+vJJlSaUTGVHDLyLJqKfBg5KhtCBjWpLI6JLqZcLqBXs0VF9e8A2Bh6CMs06BMYRcObSa7AdqM0PbgFMBBIIooqgqgiiDqipCPIBqLDQpAtRAUEh4DglBBdMjFNZ21ZI4VDh+EvyMOZ5sEZ8OFK9yN7XF0GAuuNtlRDRno6oWhov/dMaLV3LVgwvwOpAZDcWUjuLJwZ7RZP55pnEM3OpFpwexkSrWBAZk/GXHtih33/uuIi/GkdXTgjLj+T9ffMo3T0EDavKaNnfT6uX/ZmWOF/v0TCspmzKW7OpuykOJn+Q0NEww3NpOPC90oY9sHVdtd9+raxVt8XfiQ1/4OwLIt4sAVv+jeT+A5k53DTax/wzl/upGLtKnTVdjP0G9ePQUfZk5Zpmiz79CPikUziEVj1xSqOPHtCh+NcPbCIs44qpW9pOinVwOG0Jz/F6WKLsydKbBfxWAOrPrwCR7QRydQZfOkXnHbjgyy/Zw7TtBX87MnXeP7KC9jeWt/pMhRyagwQBOJJk++KKQNO5JPuH3Hy0mb0lIbsUNBjMTw/O4PwRx/DTptIRV58ifTTT6PwsSeovfJSNp3/c4Z89Bpl63by5UsdyZnZKo2/ee1zONPDXJLbk2G94vxxRhrIsE0QuepPb/L8Xy5B2c8KaV8QZYn00yeQfjqoZTW0vLWQiGCPc3vLvajvrKTH1DtR0nL2GJNGynRx55dbiOoGbkmkx9hMLhtdgiSJWKbJY9fOBsApRvn5gyciyBIkE5ixKFY8jpQzCoCinO68cratdXN+eiPNapTPY4X8fmuQSTklFHnS9zv+v26ahy5lcOUeVrg9713gLQmt1IIiE00MYsoapqwjhUUGFt9L7rE/Yf1nn/L2119z+UmnkZ7e9YTj9rjR0DF0Y7/FPwEcZjkps9d+23TrdRxrsorxbZm533Z7Yu3ON9kQSwIqLy79PQFnGgFnOumuHPrnH4PXmYGqQnpGe/ZMXloay6aNA8YBd9sbV30CwJuMRkcFbwl9Awp/veeyDpPNQGiLZ3rims/Z7WG89pHH0cItOFUQkipmLI6VSGImVKykhqXqmKqOpZqYmoWVErF0CT0pYukypunAMhVM04lNdqEfPWEJQBCVICq2k9S0DHQrhSHomIKJIAoYsonLcqMbGr4miS2OJuY//Qyu1krfiseDy+fD5ffjCgSIhe0UwcFDDi67x5A1ZKuzCyVaX48zHsfK7OKzpmko7o7fv3hTEABvTgaCV6ZFiTDyMCA0wZZmfHNU1udXc/ykiw7c4SDhzQgAtpUvmUzgcnV+HrWoLYdd3Sf4kdT8TyIZjWDoOt6Mzl/oA0EURc79wz1s+nounzxkC5N98cxjnHDtTQA8dcN7WFbXZKmn7CDbKfOLE/MINW5j3YIaki015PQ5gu79hgMQdxeiUcOiZy5kUnA5jtaqv9vf+zXOqnJG6WW0uNysrMlm8J9mtR3bJ0pEcj2s2RrG0+27p1GO6j+Jv3YXOG8ezLnlKgLVIZybtuAwTIT0AImhA1G2luFIJNl6++2MeftdtAceInjLNay95g90v/82wCY1J13TnZIB3ZFb0+E1tQ6c0BB6k5+dvJz7v3yHhO7i+J4qn+zI59d3vMCDf70SUf72X09nzwLybz2LXN0gMDuT6tqXqMqfzq65n5IRGkj3UTeRMeBYTFNjkzmAp8Q4imChSQLEE/zzsyZ6GiJiNIk8xM2tmZv4ZXohj86ah9fSUCyDqKCQYSW4KX87J42YiiCKbXWeXILJXYMmcH64kSs26YxetAW/FSJX1ih1yfT0KJxd3JdhGfaKuCrWwpM1AvliJWd16+w6VJNRfLMk6m45jwkX37XP695UvhPLkrA8nn22cfvsfclQDO9+6p2ZhsHqwQFU53Kk6QNw4GLA+Nc7WALa2ooOTPEAVez3wOqWKt4PKkhYGMGPOuzziX/kpKKh1Aoyxa7Olcz3RA+Pxo64QnevyfaYTdDuOqH7vlfPlUuwLJvRpLuacGUX4sou7LrtN4RlWKx6/A4Wfb2dc359B5gO1EicVDSBHlMxYhpGIoWRTGFpOoamI6ZEkmqYoFpHidyHtdJOvqiuOuC5VPUFZr/3JIIuIeoyoulAMhVES0EUFSTBjSS6SeWpaNM3UbXoBuTcXMRAACktQNnKVfgAunUjsmsXrkAA2eu175uaILi9o3RErMm2HnpzsnAkRayDEAb8IbD89c8pIoOhFxx9SC0mw0aP5Ys1/6H/lgLmv/whU6/snMhwOArvwY+k5n8SsRa77o03/ZuTmt3of+RRlAwcwmt/uIX1c76g58jR9B03EdOwH6z+zCYkWWTX2jhbV99PmhLnK3kZGMC/YU/a07wswKJ+VzPwxKtJFIzivNyO0fZ/2fovfr7pDSKGh82e/gQH1XJD09us2T6FwngORWISK5lkXms5Hyn53d1PoihSXDgcWE7h54tJuF3oE48k/7KfM2DceDb2t9MZo0MG0v3XvwWg+MQJtMy9DNf7z+CybuXIMwMseDfI0o/X0GNY+2p/zFF/Z+HXJyN7gnz6/khW3DGPnz75BrN2+bm6r8lj27qR+5dX+cOde6dVf4vrkCWKp15FMVcRrlxJ2df30BJYQ1PNlbhXBEhkQFS0Y3bmjeqHIgncOG8rEQviwNZchVSByCV6H8KyjxOSW+nuMNFMKDNk5rh6sbBxMye1nu88q4w3hN680JLLq4vX8OHIvrw/zMODW5ZSqVrUajJlKR9fxNP4oGE5q4+1Sc3lK2ZjCAW8NKJfl9cRabYJohLYv3UxTbDdG8++9RaO115jbWEP1nXvi1sScWPhAaRIhLTcEiLNkf2SGj0RoTlTwam7kXWLJleYZYtOIUsqRRJdeL198GSORHZlkqE10qx0bfr/1/J/EUvFKA2U4pJcuBwuFjeVA/D6KW/RM60HLYl6gol6GmOVvLPpWT6qXkMiC3KF/QfzP/azIznx8WVsj9lE/vhABUdO2ocyNMD713BNQRnWdcsg89AUOtwNQRIoOvJY4vNWkWxeTsnUSw7Yp3nFcl7+yx306dGHY+6/mRGcgp5MkgyHUcNh1EgENRIhGYmSjMdQ41ESwhby4xPQjSiGEcc0kxhWEkNMohPHEsKYko4p6whRUMpFIus6WtF2224+3bSRD8u2AyAaBrJh4ARSsSjPnnsKsighSxK1hk1Yn7yp/Ts56/ynW91uDtu15lJIltVjCqC7BUyPDF4Fwa0gu5zk9+pLenoOtdU7cLo8uNxe3B4fbo8PrzeAz5OG35/Fux9+SHphOidNOomCjI4uzGQywcJPPmfI5HE0NzbQr6KIbeNa6J/33XVp9sZRF53Orj8uBMu2lO7tOtztfjrc8J1Izf33389tt93GjTfeyIMPPghAMpnklltu4Y033kBVVaZNm8Zjjz1GXt6+o+gty+KPf/wjTz/9NMFgkAkTJvD444/Tp0/7KqW0tJSdOzsWI7vvvvv43e9+910u4X8S0WDrquMbup+qNq2nYu0qRElClGRESWLgUVNY9M7rVG5YR99xE/EGdKIhCDdlIAgqWeJO+uTOhb14xoYJj+DL605yxbv0LX+BcZsf4K/rKnhSPxmOt0BsX3WEBKg9/mnyxp1D+TNfsG26hGjpjBA0RFFDdIDsthDlZnqPKmDktGnf+R4B3H/RUyzTHqUkvw/9Tju9w5c6XlyIXN/AqNffRJRlTNMkVlmBUuDCtEw+/91LtOSXIgjZNFSmsXN9Od0Hldp9I/U4rVEYzEcJhIg2buPRn57BtH/NZEGkgasz/TzRnM0p81YyfNKhk2MPlIxg+HnvYCSjVMz+J7vE95BcYVZYdmzV6qpKThvWj/+c2p4rEoo08Y9FXxA1wavDnVPPxOFo110ZNuMrAkr7fTklJ5s3muDmtHr+Fcrl4W1reP6Ik3ltr2ym0bM+INIayzOrZgOrUyUc76tjaEbX0u6xTXZ6s6d+3+nmcxYvp7G4lKMVBVFVaYxEeGTgaADGaxFiJsSAqvRsEjmFbEsa7K++sBaxhQ57F/yN3AHHUDH/MpqsdYT0SgzBoCK+ARKtKsjDnDiCXQc4P73xIwxHPlirESwDrBSmFEDL/Dm/3rCO87zv4jdrcUg+FEeAM3udzO0TT+eYd6eRlW5bhXY1hthS3Uia10mGz0Npvr0gOeuJRez5GH/k5gMQYS0Ksgshe/8utYNBZeVCKmtX4FT8OBUfTmcAd44PXdGo27z6oEjNrH/ejygIHH3bnW3bZJcLn8uFLzd3Pz0PDnowiFZchpyTg6AoGC0t6M3N6C0tNIbDnObxoCUSqMkkWiKBpmrUaANQYiqCroGRBD2ByzRIWh2lCgQLSBqYSQMt2J7bJlqgxC2Ip6AxBa15aQ2ramlobdN1hJsNC2iWZJ5970PcPj+j5Ek4nG50D2Qm0ig1vCSWbGaXp4o0p58jTz7hO9+nrqA4nbQoEfqXFVL5+7kkRQ2v6WZHWg0Tbj2HoBqk0HdorHyHEt+a1CxdupQnn3ySoUM7JsvdfPPNfPLJJ7z11lukpaVx/fXXc9ZZZ7FgwYJ9HAkeeOABHn74YV588UV69OjBHXfcwbRp09iwYQOuPZQ+7777bq688sq29/59FPn7EftHm6Um4+BITcPOHXzyyN9pqtx3hVstYavfXXTvGSQjcTxpPkRRxDKmUflaNYIoIaUXYukpClfeQ//5NyDuYcLdbpaieIu4Ml/CWVvPOVNG0i2/NfbjmBfb2k276niOSWoorn2UFD6EcDk9TLz6t13uy/7lL4nfehurJ03CECyUcBSH3v7Q01Ud05TIyAuSUxKgqJ+9klq/5Flqo38BL6RiTgStGH9GN1yeDO49vZDr/hPhyPExMudEeOOrdYeU1OyG5PLR44Q76cGdVK+czuR5tSwaAlc1J3jy9Y+4NCvAlFFDwJLQJTe3jD8Dt1NGloROq7Ww5CHdYQd3WrpBv10hUAI80pgODlC/ms6/vv4Ml8+P0+XB6XLjdLkxVQnd15NZGzZx1eY5iL6BnBEPcu/PTsIS7VWunB3A4XEjOhwEa5r57M4HkE2LzNc+otDUSWsdikMQ8Ekij+R0A08uGdkuSqJhfH77/3FsdTmvXXxG25jL6yKM27CduLX/x58as+WVFU82ouyi9OjXKd1jfyq8AzW4GSPZzLKqO6jL7qzn0qzGCOfegu7oWjtkuQ5jg58wgXntxwVWVP6dST4H2e4MmsMxpvxjNok9xnv9mHR+ffYEBmcJLG1VgX7r7Cyc7n273Yg1QyK432v+JvjtF9eyTuzCKjoVdgUNRh+gf7hsO+VanHGjx+PJ/H4yreT0dOSR7TKQjj0W1+n76PPibQtotlSQAAmmuT4h9dV0APLvuouM89tdMaZhkIqESTY2EmqsJdbchKIZaJEIWiRCKhblvuSHeBMywyrTQYeCQBqKAXFNJaFrqKZBag9vlgAIho47DsSDLKeje7Lt2gQFWXSw9PK3kGUnDtmJoriQFfvV4XSjuFwobjeK24PD48Hp9aB43Sg+L06/F8Xvw+m3g7n3VIvfDe8FPSjfWYWh6qSqo/SvKCInmoYoiv+3LDXRaJSLLrqIp59+mnvuaVdRDIVCPPvss7z22mttaXnPP/88AwYMYNGiRYwb13kVZlkWDz74IH/4wx84/XQ7He2ll14iLy+P999/n/PPb1dG9Pv95Ofvb231Iw4GsWALTo8Xh7J/yXPTMHjrnj9QtWEtAKXDR3HkuRcCYKR0TEPHNAwsC7q3ZlLJsowvo92kL0gyJZf8o+29ZZpUReoxUyqiPwcpkI+rsB+9Bh/FwZYm/CEIzYFQcuppLHvqScSWIFZeHsboUTj79CVtyFAyR4xkQFrXAXS5haOp3QKu1ClMOfUhtGQExWWT85NHHsXMdU/z9KJcekkhNka+/6yCohEncfMIuDoe5+1ZC3gZgV860mBN52KJgmXhMMFhgdMExYKE04WxUqFu5uuYugvByOaCxDPU5BaTLMqkT/UuYhENNWUh6wIC9jV1H30sC0fncEFdEtLHc+z8j9mxbhEuRNQBmYiWhd4YRtdaEAyLcFpPKgtKGNVYQ6aaZIekEJVlEARSokiz20fPxjru65bN9JpmmkyLKAJH1FRwem7H/0WG1/78tCT3nQFlWiZa3Cb/iqdrN60j0ANHwCYyyYo70WQ/ST2Jq7VMw5s7V3NjmQWOIoY7qrij7yDiRoqkoZMwdH61tRldSkdBo8HwkCO1y2JLApydkcIrNnLSv2aRtCRun5xLTpqHmz4s59GlQV5e/REhzXb3ygH4Q2Md/T5/m74ukVBKxxJEppT2ZVyPIXa8xXPHgZ6Es545qM/GgRDFYIqcxU1H3oWqhUmoYRJamLuXv0LVQXxFG1euAEGgx+R9p3Afami7okTnVyNnuwkca0tHGIbJxgV2ALIaTxFtURl7ek82zN9FpClJaOEyMocMIbl2LcF330Xp2QNHXh5K9+6IkoQzPQNnegZpvbuOf9ry4msAPHT9S2QUdia+oe3beOb3N3HU2KMY+cubkBwKpq4TCwWpr9qJW/RhxTXUaAw1FicVi6PF46jxBKlkAi1pv6ZUFU1LkkxEiYSbSKWS6IZGytDQTRWL/ccBSYKMLCo4JCeyrOCQXTgUJw6HC8XpQnY4WdO8HYeo8NW9M/HJMdJ6fTcB1+8D34rUXHfddZx88slMnTq1A6lZvnw5qVSKqVPbYyL69+9Pt27dWLhwYZekZseOHdTW1nbok5aWxtixY1m4cGEHUnP//ffz5z//mW7dunHhhRdy8803I+8jmFJVVVS1XQQsHD54ldT/64i1NB+U66mpupKqDWsRRJHL/vk4GQXfXKnS0jRa3ngTIxwm5/rrEESR4ov/9m2GfVhBFEWO+OTTb9wvp3gY2uJcyPiYT9//CiUQJ8d9C0PHXwvA3eecy/t3L6BBcSMcgiyug4Xb4+GSk4/jEmDV+k1sqa6lZaOTlCiQO7aAhGGSMk0000I17NeEaWI013MsMZR0DSQNzxF5THg9QLKihotv/z1cenXbOUzTRNUShGNBTosFqUuKfPjQPzEkmWNPmwBHdsft9nHskZ1rLv1i/nJIwT0TRzKiYP+CcJPHjtrvfr/HgWRaBLV9k5phL9kkfahbYaI/vcs2akrFITlIGUlcosVXu5Zw/6tjSCl9COfcgCnZ/S7JaODGvhMo9nT8zn1Y+zFfxNN5UPgt6WItARK4SCJbSdKEGBfwEv+YlUFtQuCEXh6uPHEMEU2HD8sBCGntVrMLRkeJWRbrdDfT1RwyjBiaIPHoTpNeWz7nYnMHw3QvRw48E4aeu9/7c9CwoEhJo7TH0R02F675ikpt70JmnRGqtXVx0nr0PEDLQ4f6h1e2/e2fXIwgidTtCDPntY6BwYs/KGv7252op/ih19l27BSSa9ZQ8VPbxddrxmco3TuLRO4LabldZ0sZSTulfe7iuexcu4pznn8NUZbxZ2Xjz+qs1P5tYJomekJFDUfRwjGSkRipaAw1GkdrJUlaPIGWiJNKJtGSCTQ1ia4l0bQ4sWgLKV0lpavohooWVBlvpZE+UIfhh2SIhwzfmNS88cYbrFixgqVLl3baV1tbi6IopKend9iel5dHbW1n7ZHdfXa32V+fG264gZEjR5KZmcnXX3/NbbfdRk1NDf/85z+7PO59993Hn/60v9ow3y8sy6JsxRLKVixFlGRkRUGS7WqzkqLYrw4HskNBcijIiqN1v4JjD5Oh4nYjK85DGtkeDbYcVOZTTrdSRpxwKis/+4gP/n4vP/3bo9+o4BxA9W9vJfLZZwAkN26k5N+PHqDHd4NaVkbZSXYRyAGtcRiHA0zTJNi4jfqqJSDYJnslYK/M62o/A2xSE/Ck45GT+JUUO400otEEPt8PK241fFB/hg/qT+UXsxBEGeu1JXYAgWCBYCK0FpYSRBAUgeyrpqAUtaeJ5369gZVLp2PqBuIeKdOiKOJ2eXG7vORlFWEtmk9eYw2TLryUI6buq4CCjSlvvsJNMz8j4vEyx+tFc3tIudwYHg+G14szGqMyI5eZZ1yCz+0iU5FJd8ikKzLpTpksp4Mct4M8t5N8r4LfgGAiRdUtfyHyycsACO50rEQQZCcTbujOAudOfKKFw5NBeOVDiLP/hiU7MGUnlTGRN1qO5xVjd/XshxnSfSlnDDF4uTkdUwww0VlBkcvJ34Z3HeP1l8ETaFk1n4Rh2q4OBDTTzQ49m4SYQ97MBfTbsZ4N3Y9ip9sW9Wvaw7qUJiToKzXw8O9+ToGvs9XV0jW+3jiflyqb+ZN7HAwfx9dFUQ4VhbCwkITOzwO/5CNxEJlgDq99TdGyMrx5378F3tL3WCSIAoIkkohGWPXZ8+iqiOy0ZSlkp8SwY4sp6peBe+0cGmbbNc76rV6FGYmg7dzJzp/+jOpf/4buL76AuJ9Muz2xr2zGzEFDOPfKG5j51CNtxUsPNURRtN1OXjcU5By4wwEQbW7iyWt+xtCivSu8/ffxjUhNZWUlN954IzNnzuwQ6/JD4Fe/+lXb30OHDkVRFH7xi19w33334XR2/kLfdtttHfqEw2FKSn44XYE5rzzH8o/fI7OwGEmW0VMpDD2FrmkYqRR6yn49GAiCiOJxo7g8rWSnnfDsfnW6PThcbpweD4rLjSg7MPUUhq5j6LaraPffdWVbKejddZbJ3jj2sl+gJuJsmPMlr//hFi6895/fiGBlXXFFG6mJfvkllmEg7KdI3XeFvgcRtizrBxeG0nWVhuqVNOxaQSi4gWSiHF2oRXKHkRQ7xsMRAD0pYyaykQQfxcUdVUB9iorPZUAcdqzbxpBxBxau+z7g7BYhVRMDN2BYYApYJli6CAhYghvBSic6dy2ZF7S7EAoG9Wfp4vdp2FBG3tB9pyR/9C9b1etgRCD71di1NWrPu9DWx4lGIZ5Aikbot2AuAKXAFreXGeOPoiEnp3Ndgj1wdbnGaf+8sC1gU8rriSAK6Ikg6Cq3vClz7RlHo/o+J77kEay1z+CKRokW9URIJRkcreYex/PstPJIWAouIcXo0tHcOOFknp69GoA0h8TqSIKiL+aikERGJ0/WuKPvADZu3sX9ZAB7PZOsFEgOMlt2cuO7q9DkdbzX/Siaw7bVOdetkF7gJVgTI2S5yRoypEtCAyDIChOGHMuEITBtxVdcG8rEnX7osmQMLASxiylEgAN4OgAonXoCzo/f5a1/3ENpTiHHP/AvlO8xTlKQRfJuGYVeH0f0OpjzynMs+6i91pTsHMIFd44lo8BD1XXXE731K2KtejWV115H7s03oW7dipiWRubFF9P84otU3XQT3Z56al+nBOCTiS8fcGzdph4PTz3SpR7M4Yh42I6jcwcOTi38h8Q3IjXLly+nvr6ekXsEXhmGwdy5c3n00UeZMWMGmqYRDAY7WGvq6ur2GQuze3tdXR0FBQUd+gwfPnyfYxk7diy6rlNeXk6/fp0naKfT2SXZ+aGwbelChhx7PMdd9ct9TqyWZdlEI9VOdHRNs32jibgdjd/h1f5bTcRJtb5GW5pt02GytU08gWXt5bYQBGTZgShLiLIDSZa/kZrw5It/ztbFC6jdvpX5r7/IpAsvPei+7sGD6Lt4ETsvvgR169bvndR4jzySkqefxgiFvjdC01y3ibpdC5AEH/klk6ja8TkVFU+BFEPyxBAl+4luiCKGEECycnGbRxBwDSC7YCS5RSNxKPt+eCmSTprXgmYo31rxXyM1udeftt/98VVbaX6jFtHfWhpj8QY++3wGogWJwh6sW7R4v6RmN/J7HriNMv4IWLeeYy44G3+3dpP/xg074KyT2t7/9LP3uHDmh1SecgGF55+JUFhAUyJFk5qiKZmiRdN5s66FcyraLQm9Z82j+tZ7SSz5rG2bXr0Z6f06Rk2qRVzbnpkj7kyiSelUF4yiqOZDXlba5VYXZX/Int+86eFMLNENEvSTm1mV6kbEEvnZ5gS7RQ0krQpf8DUswYUlOu1XwcHLd9uuzeem2EGpJw8t4KPt9WS5HMy5egKj/zEbURT451njD3jvAKImCJZJjufb10TbGyYWkthZE0rTVWQO/B33FRdz4d1/Y95Df2dzcy05Tz7G2F/fesjG1xUcOR4cOfbnVV7SHviTlpvHFY90ju2xErZrSNu+narrf2lvlCRoLdoamzsPMx7fr7WmW6/hBzU2zTRwf8ciwz8UEq3hHJ7A/+fie1OmTGHt2rUdtl122WX079+fW2+9lZKSEhwOB19++SVnn302AJs3b6aiooLx47v+8vXo0YP8/Hy+/PLLNhITDodZvHgx11yzb72FVatWIYoiuYcg7e9Qw7IsYs3NZJfsRwQLu/qs7LBdUofy3LqmYug6ksMmMKL47UhEc001Xzz9KJUb1oFl4c3IpO+4id/4OFJaGj0+/AAzHEZUFDbXRliwrZHmmEZzXOP9ldXENYMt95yIIn8z91ZX8E365mP8Jliy5GwcXtsMUNmqjeNIBzM0AK85gPSMQeQVjSEjb0CX7rpYuBYw2+oE7QnTNGlKeDlxoMrSnTrlVfuXjf9vwgjaasVyhn0d4aYgjUbreNOy2NRQzpR9dQbS8wqIhYIHda68aSdS9/Tz7Pr4I/pde33b9p59u/H6lbeTjcbwU45hxZ330Wf1PPq+/yINX3zMUcvmdzrWnfRg3by5be/Lz78MvW4bAEqvkVh6itTOtbiG3UJQeJBMq/2ZFxCqwaxmV8YFNE2+mshXD1Ja/zkAhSW9kQSB2mOGt7U3TRMTC1kcTlzXmFNfxtPlW/ha7UbfUJQb/EHigckk9ATrWtYz2/oCAE+r1lLq2BNgYR3Pfdwx5sMS4PErjsDjOLjvdtOaOJdvFfng0+l4XQbH/OoMnN9CfHNP6JaFJHWOCE7oSRRBZsPLL7B25qe4PR6m/vmveHJyqfjic2Y9828EQUQSRWRJbiMI+nf/6n8jjD/7Ajxp6YTqaino01FQMeuyS9EbGrCSCcxYHDMWI/fWW/FOOBI5NxdL0zCjURDFg3Y/HQiqAG7/4UcSukI8sttSc/iN9xuRGr/fz+DBHauPer1esrKy2rZffvnl/OpXvyIzM5NAIMAvf/lLxo8f3yFIuH///tx3332ceeaZCILATTfdxD333EOfPn3aUroLCws544wzAFi4cCGLFy/mmGOOwe/3s3DhQm6++WYuvvhiMg4yLfmHhKHr6CntG1fBPhQQBAGH04XjOxipKtatYdaLT9FYUQ5AdrdSjrn0KroN2rvW7Tcbl9SaEfTMvDLeWm6rhg4qDBDX7IfaDa+vRDdNijM83HXa/uvt/HdhE1Up1R/DscneFBnFcWf+54A9wy2VLF15NABi9Eh0I8SwMXeTlt2Tmh3z+XLD5yT04/CIcQqMOJVNsf0f8L8IvaWV1GTaJughx4zmk8VfMKH3aLbVr6MuuP/gfIfLhdl0cDEEmYOHsNPtxFiwAPYgNU5Z4tJbLgYg2NBMn9XzSMgKTRn5JMdM2NfhqPNK9J58G3rNlwiyDLKMXr0JI9SMpSVQeo5A9RWSTPYFZzupCVFCGpVY4VoUZw755z2G/nBfZMEkN6NzUKcoim1VsjyywomF/Xlju11Fu1QJcM6Uizu0NwyDeCLK9docCppqefTUkawaF6UxofH+xjqmzykHoLBbgJN67T82ojmmYYqAbiIt9ZAdUFF1D7UNWYwq30nOdyA1lmkSEkXSHJ0tCzEjhld2s+Grz6lSY6DGaLzuCoqKu9FcX0ezoVPsDaAbOqlUipSpky3IDDzljG89nv2O1bLQtHpARFGyEFrjgERJYsS0U7rs4xkzhh5v2d9nI6Wx6IG/0LB6Kf6mOrSUhhZssY8jCBSOGkP3476bNpYWiWCIIp4uyjYcjkiEw0gOBw7nDxuGcjA45IrC//rXvxBFkbPPPruD+N6e2Lx5M6FQ+wr0t7/9LbFYjKuuuopgMMjEiRP57LPP2uJ2nE4nb7zxBnfddReqqtKjRw9uvvnmDjEzhxN2u392y5H//4K1X33O12+9SrS5CQSB4oFDmHL5NWQX26mPlmWRqoqityQxwhpGWMUIaW1/uwdmkX7ygcMQ/3zGYPwuB88t2EGmV+GD6ybwq/+sYnVVkIaIim5a3HnKwLZCl4cbLDWAYeRz9KnvUbb+I1yeLIp7TT6ovl/POh9Huv236fsaEVi75Wyw5zncSg5wHLW7LApEjV364Sv6bYTigAcpJx2A2W/OwBBMQqEQvfv0YdeK1VRt305xr66F3pxeH4ahd6lW2hX0nj0Qt2zd5/5QvW020+68j+N+ctI+2wHoTomd+T046skX99lm0+/nE5KOoJB32rYllRLStEqKqh6FF1uD3gWokiUKD9Li6muqwO2E4zI6uxUlSSIZl7HCWZSU+3i8te4WwCBgSHY6c/s4eP7CjhlelmXx0/dWM2+JXcVcSXeiBe04nEuiTvItkakX9cVZvoHPpoPzGwpv7o1EMogqCmS40jvti5EkS8pE1TSyBQlZkkloKtsrykgBWQ4n577w+nc6/zdBReWzbNt2HwAeT2/Gj5vxjfpXzZ7FojXLwLJg05q27YJlYQkCGSsW8/NvQWo2vvgc0WALY268hWi1HTMWq6tl7m2/QUlLY8xNv0b6gWNXDxaJSBi3P3DYFbOEQ0BqZs+e3eG9y+Xi3//+N//+97/32WfvyV4QBO6++27uvvvuLtuPHDmSRYsWfdeh/mBwKE7S8wvYuWYlgybvzwD/34ep6yx46zVWzfgYLRFHlCT6T5jMMZf9Ao+/YxCYVhGh4XE7CFJwiEgBBTHgRAooaOUhEusaD4rUuBwSd546kKP75XDLW6u59PkltMQ7Bk1rhonrW7rNvm+IViaWWIMkKfQZevY36yxFO76NT0YUHMS1ZQhmBpNH3I17bg0yabh3raHJffiZd3djU9MuvnDtRHpkFrIgoZJCtARGThiNvziNuctXsWrJon2Sml4jx1C1YS1rvviM4cfvn4QAeMeNRVi/icjOcvzdSzvtjzQ0IwHerANP2JZTwhnaf4aOZFqk8sfCDSEswyAVCZHrTyNSsR2tvhojFsKMh3mu7Fk2OGtY9fIIECQEy+Qk5zT6+brhcXhwyE6cDvvH5XChh5Yx2pjJJSd+0OV5P9qw73Ros1Hlud+NwbWX2+n6z9Yzb0k1jjQF2SGR7nUwdmQRDklg7Ac1FPtEQi9UkDC95MkW7uzvJnbXFLRLC2R6O1cijwsqpbIPTY+Q5vNz1rOvfKdzfVekpR/JRYJNTHubOmnLtxCQJX7bo4ARgQO7jmI1dur5ZXf/DcGEpjWr6HbqaSheH+/+/CJ2xEK8cdE5KIqC4nShuFw4PV4Ujw+n34crLR1nWjqujExcWdmIioNZf72HHbEgAGNuvIVYtU1G12/dQEKyCX7x4oUUTz60pSwOFZJRm9Qcjjh8l4H/n2P0KWfyxTOPUTxwCEOnHBrZ/kOJRDTMV88/xZaF8zENHYfLzRGnn8uRP7kQSe56xSl67I9L1sUDcA3K6sDSY73SaXlvK1bKRHAcnHP8qL45zLjpKH73zho+31DXtv3ly4/o9NA+nKA48kkp+7YYdAXD0Ni4/AX8zmNxECAS2QD+FfQfci353Ttqr1q8gyhJSJaJ0UXK7OGCuVFboO+ofmNJpVIYhs7wo8aQ19vWM1Isg/Ly8n32H3niacx97UWWf/LeQZGaglNOo/bZF9n14Qf0++WNdkX4f32IltBRPA5atmwhzV9KYUEumpbib5degGgZ6JITU1IwZSc4nDjSsxnd41TcB5ABclgWhtf+LgiShNJaK83foy/06NvWbtWHvVgsrOSMHBdrdm2jITqTz5NfMiNpYghdZzgeLbe745vCCZojGn2KbAI7MxQlNMjHtTcfiZ4ySakGumaQ0gzcPgev72ggqqbwKzI+RSKgyHy+upasQh/Lb+hoMdz60ircno6PeYsYju+YZdQSstXFMwOds6kSokaaI0DKDOJ0/vezeZ5rzgRqyXLIHJ2TzcJglOXNcY7K8B8cqWm0ixv4SrqjeL1kDBzYtm/U+ZdgvPEyWkojlIyjxyKkLJMUoAvAPiwZsmmCKIJl8ekNV9NjvB0HaAIuwyQpibi+Y8zT94lEOIz7MFX0/5HUfE8YOvVE6svLmPnUI1RvWs8J19yE8A01Xr4PNFVX8eWzj1G5YW1b8O/4cy5g2NQTD9hXznSDJGBEtDZCo1VHSdVE0aoiYIHelMCRf/AZFplehScvGcVLC3eyujLIOaOLObLXoRGc+r7gdhdjOnTqqxeRW9RZUDKZCNG0ay0tTRuIhLaTSFShCavs4GIFwmE/iAkUwBfoKN5lmSYWthuix5ihrNyZxFRVxP9iJt++0E2S2KbrrFz9FYVuNw5JZufXYfJ6/xSA3Iw0appD+3QvibJM915Dqdy2jrLfzMQSLEwMDAws0cQUTCzJwpIBGcSYyMbBV1K3fgjzrvoIpxEj7GhNFLBMEEbBqFGsmR+i+uE7CBhJItm98Zf0JJVMoCcTOMpXIreUY/Y9Fd9+vMOpeApZEJD9B3YpxfDS25rIQ+OGs6GihWO3twuGOmdXIWgpEHQEUccrpHjh3EH079mXu77YyBNSu0DosasEPILAYo/Fcaxn8ju3UppzNNubNxMK60wuvp7FWzUad3Ydq3TCEXulh5sm+oYwu2PAdsOTXsd3RUvYtixkpJV22G5ZFknZIM2ZhoqF8xAF0X5bRHSDB3bYMg/HZPoZ6HPzTJVdV6LAeXDuwnhzE7Jhong7P9e6H38C3Y/vuvaSZZokW0soqE2NJJqaUYPNJEMhuh8zhXh9HR8/9ADBliZ01U48UCURn2F/MF/5821YCBx73MkMu+rab3zt3ycS0QiuwzSo+UdS8z1BEASmXnEdpmGwbtZMJp7/00OmDvltMeOJh1k3y87UyCrpzjEXX0G3wXZqt2WYgIBlmIhK11YSQRKQs1zoDYm2bU0vrscIawhOCTnXg+D85hYWQRD42ZGl37jffwvZBcOJNb7M2s0Xoa9yg+5CMLIwhGZEJYLsbl+dWwLouCGVhhZyI1v5OEQnouXAY/TCl5GDZZrEqzYSK1tGsnINNzjqMM1plPTqxTN1LVSt3US30Qefgv9D4diTTyb42usgCtQkErS43WzeuJEjWvf37tuPqqUrePo3/+CiP1yNL8Ne2Zmmydf/+Zya7dvpOeZoqratZ3nTTAaOOhpLMyBl2kJpOpACUQMhKWIoJqks25WVrsQRDB2PtYtpf5iGpzCLGdO3sP2jahIL5xOIr0PqczS333UTjj1Ez/503+M4V8/g/S1N3Imb7T/7Cw6PG6VXd0SnjOhREN0K0YQDEYgmOhYx7AohLPJaLWoDu2VQluvjrhXlvKTGePiEIeQIIrF4irdWVPF5Y4TeJQPx+dzoe7nhdaDWMumrC5Qlp9MSr6Zl56uAveD/dN5aTL2Qn57Qh9MH5BNWdcIpnYimk+1SOKHHXs8XUWR+/mz+WTuKS9K385uzj8eKRZFL95+qfzBojtousoz0ju7mSCyIIVmkudKJCXRyYf/QcIkif+pdyB+37eLtuhberrOL+b4zvBfj0/efPr3jk4+oWraYqh3bcPLNY0cEUcSdlo47LR169e60P6NffxyP/AMtlcLQNMYNHY0vJ5eSCZPY9MG77Fi/hlpdZe3sLw4/UhMJk5F/+BWzhB9JzfcKQRBQ4zFyuvfA9z0VbPsm2LXVVti99J9P4G5QaH5jM9V0LjRafP+kfR5DzvGQqo1hRDXMhI7gEPGMzCXzJwcn5vd/Ab2HnkFeyxi2rnmTutSLSM4wZlJEsrJRrKF4he4EMvqQmTuIzLz+ndJeU7Egka1Lic38G83zSvETwiuaeAHTgusUmCOUUDryRPh6MWvW7DgsSU3hiBFcP6K94OY7d9/NTrPdpzN87ARmL1lOc3Q9T193FU5fLpKsoMVDaAk7TiHcWMukEy9h1vRn6Z9zNEN+cup+zym8s5U5Mys5/ncnEyjuOClNO6kvz818hVBwFYG8YVxy23WUV9Tw+cczcLo9uL0ezK3LUUUnLp8CUXAW2J/1VE0CJAWhNY5rt11pzeJaXMM89OhXiNPddUGjsGjRT2gn8x6Xg920dtqYYlytqsoVdVG+bIwQSLOtbvccN5DbVZ3Bc9dSqsETk/qTGbADQ+P687xctpDFXy+h5MtFrE7vx7/vvYiAU8Z/kBYGgCtvuhPz5de4f30PLlcgr8+BykweHJoT9fhNE4erowuiMWRbgby4iAkCnrT0Q3K+b4PK5jhvLatkYp8cfl6+i4XlTQiigE9UGX5EH8QDBLnOeekZmiwdBIEi96HT99kTbsXJrlSCL76c3rZNmvkxsgUyAojQa8jw7+Xc3wWJSPiwFN6DH0nN94p4OMT2ZUuYfPFlh0WUuMefRotQRVZRMdEKe1LJOLc1NsCClre3gLz/cUo+B7H1TdTcs7htm6P48PStfp/wZxQxcvKvgIPLwLNMk0TDToJL3qVw+d1kApmAikxNt3ORCwbi7j4Cf69RmPeXIPsy6FaUhU9Psm5nkK4TTw8vaKkUe0776dlZuMV0pLwssrPiJCMhDF3D5c9k7NkXsn72HJqrljKnfgcAn7/zGGrMwejLjuv6BED38QUws5KKhbsYfG7fDvuWfTSXUO0qRpx0Jcf+zFZpfv+1txDXfkUCCAEBIJxWwhXH9Yb37PN6R1tknHO8rSkTjWOG45S9+wkbF6pE0vry5RNlQBkWJoj2jyBZCJKFKEPk2Hz8RscAnUZNR9DNNkIDEIxr+GmvdN4YTRJM6nQzBNZ7YObaGk4ZWogsiTzz2se4pAQ9567AralMql9DUeDbxaecf/oprP7kr5RffC/eay/Ad8GN3+o4e6Il2UKm1dml+MAHvwIvlH04HR8OvP/FFOVJD8wC4OGvtrVuaR+LeBCaF6qhMyC/mGn/ePh7Ewy94JW30GIxgps2UL14IalYDDUWRUvEURMJLNNk2BVXH/hAPzCSkQju/4JkycHgR1LzPWLD3K8A6D/x6P/uQFrhSU/HsixMw2gL+nUPzkZsdRnpTQniK/bvb3fkdVyxuAdlkXlO3320/t9DKtpMbMX7KMufosnVBzFYjjNRg88K4pFS7I4wqOp9FZlTr8GdW0q31kluzay3SX1yDqMEE0t2IwgC/YQYG0LfTz2YQw1V11H2Iu952UVU1m/jont+1ymupmRAL+a/mY2R0ogFm1AbKxBWNbDjozJ6nNp1Fp2/0IdfEana1MKeilmNVbXMe+3vABx10clt25ORILq/kDufeJxQNE4wGCYrM43G6nYXqt5sawGJoogY8EHAh+k16b/yIbo//BJRVSYZ11ATKVKqgZZsDdxVDbSURUIRSDM6ZlKFUjqS0dG9FIqnSGvNbKmpjXDk2m0kZAFa59cbtRA3LrOlLn4z8zlS2BUqAOJOgyHPjUWwXFzS93p+M8kuSqmnNJY+dzOinsSUPWQMP5X+Y4/vcN60QICr1n6E00iRWL7w0JAaLUyG0NlitEKuRDKgj5aGwyVS9ANW4N4TurH/KHBZOnB8YwoLp9eL9D3HsyleL7mjxpA7asz3ep5DhZSaRNfUH7Of/tdg6ClWTP+QfkdOOmykpH2Zts/9xV9fy9jx5xDARWxxDUqxH9HvQM5wYYQ0TM3YZ1yNo9Xk7z+6hOiCapDFg852+r+Oqr8eQ3FiBemt75WWzbQIOSQ9RSTSJyIVDMDVfST+3qMo9nVewQ6dc3nb34OnXAjAgHSZmfW+/0odq28KzTRx7lW0r2//3pQ3bGDH5ip6DejWYV9B7xLOvf26tvd6QmfzA0sx51djnly6T+2a/DwPm+trydiynLrmJhbuXMz02H8Qptn359UXR6GYEi7TgdZdo7u3FEmWyEz3k5lury7VGOymIXpjtNM5tKYmFGDYMcOR9qM/U94S5I+ryinJ6WhFCRkmRtLgg0+3oDgktJTJosYI/tbJ9Ok1VSQc7f/PPnGLawuysEwL3bRo2Os8FRPHMS7Lw8Lm11nf2K4uXLF1FeNrXqFKyKfYqmVlaDvsRWqW/OIa/IbtEPOf+/N9Xss3QZMeI1PqeM31u7aRcMLP1NFc+Nzzh+Q83xaSKHDZhFIsC04dVsDqyhAbasKEEymy/U7kA2hgmaZJShBwHqbWiP8mEhG7YtqPpOZ/DJsWzCXS1MARp31DHZPvEYMnT2HLwnk076pmxbyPOSbzPELTd3RqV3PPYhAFW2xqb7ROrI58D65BWSRWN9Dilkk7qcc+idD/CpREDZrlIOjpS25iPfVKHwr/sKTLtkayhfD834MWI/2EFxBEkU9738mJ22ytJi0ehowshnTP4pWITmPFLnK6F/2Ql/ONoVkWAanjI2XYEQP4fO5HrFu5qROp2RuyW0bpl4lzVT2mbiIqXZMavV+Ip4pv56mF9nvRlBirjycH8GdmoJkp4qk40VSUOcJqarsg3WkZrjbioDd2DgaO1tTgU5T9EhqAmoht5clzdxRJ29oYA4/EjXM6pv5PTbMtnY851A7bt7vhn3VNfDF5EI5Uksf3vN5heTx91R8BGPz8m3gd7RlFsSY7YLdu5M0UL78VQ+6YbVRbvpnFOyNMBdKHunAVZkCoGnx5IH37x3+LkWSAq2OJmrpaW7vmyAH/fQkLQRD446ntquSjun8zN1gqHMYUBdxph8eC9HBCImJn37l+JDX/OzANgyUfvE3PkWPI7lb63x5OG3K69+AXj7/I87+6hrrq7YR/kqLfqCMxoin0+jjNb2/BShoEprSmhu62DAitvywLI5ZCb7TTtpNbWsCC2KIaYotqkHPdNBRqLI9uZvykI+nbt+9hb104lEgp2ShaDbmJ9QAU6puJPFyKnt+PjJ/MIBXeSbJ6NnrNUpSV75LROiEmB32Fq+QYsvztE1JTzQ5yi3owbFgvWLeZ1cs3M/VwJzWCgMPR8ZHi9bvxSOnsrKg4yKPYRDrZqOIr7PrxNGLiQJgBRVIx/5z0CMU5+QQ8HYOGI6rtXjrutZ8iODs/fJ0umQQWlmjglnJINQRxtCojAzSU7UBxdh0YvCdmNrfW+d7LRSGYFpYocP+4ntyxqKwtcDio6tzz3DLo0X5t9ykBno2G2eYCRIH//OdpzutxK3E9wnv+dzjl3D1r4BlsbF7Pm2vmkeUJoO/ayBAgUbkKgMDRv+wwjhXr1/OP4Rdw8hFLKRDL4NmpHS9AEECQQJSYXdudZjPTLrPikJFkGVlRkBUFh9Npb3e52SWqNBgGE5wdJ/xIxE6Vdjv//yjKuDc2v/EqC959E1kUkVoDxt3fUXn5/yJ2k5ofLTX/Q9ixahnN1ZWceN3hWcbh/Lv/ylPXXsanj/2D7Pu7kdO9B45cD1mKROPz6zATOmkn9DjgcZJbgwguCSvZWpCuPsEnobkkhRTlr+/koosuok+fA1dg/r+C9J89R/SJifgkFV0SSHo9SCkV/4ZFqPdl4VR1HNjTdtLtJKXIODQd1/O2Ne8IICG6abECFH90IS2lq+gzsCcufQ1rt4WYur+THwaISSJrDYN1d96BaFmI2HOmJsrEky2YuoEo79+alzMmn6aVDVQ/soKiX47EV9g566Qgv4hueiHDHAMY2L1zquwnm5fxu0WX2W9EyJC6LmGhv/8LAOIZPSibHUN0WwhOFy2yg/47ythZWMQf5i/FL8v4HTIBRcYvyJRoEjnpHrx+N4mkbXHpH+g4kSseGVUzSQgGXgRCWBwtm6xQNZZUNUKP/La2t2lhRIfFiITA0u1fsT1SwVSOwCP7OeWMaxnUp70kgmIW0SAu4Z6VtgXw4lCYowSRfnWf0oKPviM7Xmuf4gKgmbJRf6BnsQWxeog1QKIF1ChoUdBikIqzfK2dodktG6IJFcNIoOsWumGRMiBlCqRMERBIG+KlR++OGY+6Ycd+Xbr+d7zp9tF/yNFd3vfDBYaq8tmvrkfXdRSnk/q6GiKWTqErHS2lkic5KRy/7/ph/6tItpGaw9M19yOp+R5Qu20L3vQM8nsdnhO62xfgvLvu57Xf/4rX7/wNV/37BVw+H66+GaSd2IPQ9B048r14hu+/ArqrdzrxtY3kXDuM6Jwq9JBKUSKPoBamKRWmvr7+f4bUbF/7Plu23Y04KgOPS0NzCJRk30+euh2m349T1WkZOQ1l8MW4Co/C7UqnsWEWkZX/Is07COKNZC74D24zQcupD+L/6BcsX/EVo46/kN5GmPUNB9ZL+W/DWb0dZ1oWuYOHoqkaWkrDMAzCLSH0cDNlKzfTe8zA/R4jvVc65mWDaHl+PU0PLWerYeH0OrBEwWZIIiAKDPb04iN5JjvuOYrckh7Iotz2s0QtBwEmZl5GQPFzzqD9S83LOfmYoSosLYoRacSXSNDiCzB/6GieT4oYkgAJAzA4dXETw8vbg4KbShUY62PS6nIkAWRBQBEEEllOpKoYf1pvK+/e2tNP/MsH6F8ylcetPrhmVGMGHGR4HDRJgCQwWvHwTONTNPqb6KEW0q9/LrnVa9ha/zY4PODw8PKg46lNxAnrbsoMmV4NfyEkywS0BGuKzmf83v8TTwBoxpVVAqOO7nTtTWvnUbFgOt2OOhlp7l8wLJH8ohwm/f6ZLu9VStd4+KKzOLX0BE495q4O+46cdAE3vLiUhx1z0FP7L0FxOKBu6WI2/T/2zjs8qip/4597p/fJpPcECL0jUgUUe8eKva6Ka3d1dXddXdfee++9d0VAioD0XhNIAuk9mUyfue33x8SEmASwgvvjfZ55ktxz7rlnbm55z7e838YaRE3DosYDg7MTUzjl+df29dT2a4T9PnR6PQbzvleL7g4HSM3vgKC3pT0od39FWq8Cjrj8GmY/9zhv3XodFz/+AqIoYj8kE6kmSMvH29EnWzFm9mxKTjilALk5QsMz8XpQ1pEpeLwJ1FY3kpqaSnNz8x/1dfY5GuqWYXS1YghPwWrLIcmaQ+9BJyM1bQDuA0AItWDrFRc+U1WZ9RsvBT2MHf4IZtGN15KC+7unsLQupZEEwqVLgbMZ6BBY2rpnV8i+RCwYQBcJkZbg4czLZnRqiwRCPH3JWWxdsnKPpAbA099D3dQcambuRC+AUSeCqiGobYJ8qsYhkfFsMu2k0l1PVWQrqqCioKEKKhGdhiIn8/eRp+OxWako30Fh61oS3B4Sk9PR6fUIokhJr6Foej0nfPFK+7F3FJcSOf44+O9/ueuYI7mLeFaXNxyhJRLlvQVbaM0yMXWci0gwRno4xqyYimoQGeq0ElJUgooKoQiKN4YK6PQiF5w9mrJBN5E7eBip31YQkxRKGoIoqsb2ljDrozFs/R3cNOJv/HflXXyZuoiDqqvo1VAKwK72rR8jRc5OT+XGQIBysw2bEERM7pqFWLhjJwDbPn2J4LcvYjIZGXnuDTjz48U0l77+OEUVEXQL1pPmMVDVpKCqPWcORWIhAMzd1CTTG4xkZPSFhu9JTtp9/NT+gEBNPB7pnJtvJ+Wgg/fQ+wB+RNjv32+LWcIBUvO7wOZOwNe4fL/PWBly6BHU7yhh3ayv+OyBOznlljsQBIGEU/ogNYRoemMzKVeNQOfo/oUqGEQSzx9I3eNrUH0x7OMySFxVQ7B6Ixn2LIqLi7vd738RQlvy7fijnkCv73CZ6FI7xM6EiB8l2kq44jvk6hUMrHHhrijDsjDuXnC39QvV1iLpE3A1rQVgSH4yHxYqeKtqcWd2uC32J4Tq4lIAqeldawGZ7VbMjmyqizbt9Xj9Ds/m2U9KyBqQwNhrR3RpTyrrQ9m9GQyZrGPSWZ1dLk+9O4eH1sc46slVRDsp51QDHXP4h6wnO9o586muphYX4ErvOM8mvZ5Uh51Uhx1TWEWfZWfM1I6E8mvnrOVizcp/Rv2EVBwNgx6ax2ktn7Ht8bvRDA62LLcyUG9BNdgZYjcjmBxsjsYIxHpz8bFTSEmxYVppxKVzYglvZlVqAXnnfYUiR1BjAVQpADOfJ6fyE1KUuPXOP/ZGWHAnMzeFeXXHDxh1Iga9SCzYxOxmicFKGU2VrRjsEvUBPZ75HzG0jdSEI/FoH0UTqWqKj5c5eGT7V1DlNjkBUUQURYKheAyR0dh9mnNjoA5B1fAk7/+kJtjQJhSYlb2HngewK8J+334bJAwHSM3vgtyhI1j2yfu88NeLMNvsDJx0GKNPOGVfT6tbTL34Cup3lLBj7SqWfPg2408/B8GgI+m8gdTcu4LGN7aQMmMYQg8pkDqbgfSbR8fLK5j0JFWnwHrYXhInNLFYDKNx/7Yy/BoUrnmLqroXwVQJQHN9ISkZozr18SUl4WxsxFG2FfHeHH60fVlMekzR+EujefQJGAtOpGjWZ4za9jUAIc1EOBJl+Kh+aEWFrF+6kcmn7Z+kRvLF9VXS87rXl0nJH0DFxvl7FVcDcc0YQRSQIt273VJyUxGEpVRs7do+qzz+oo5i5JSkCk4b2xezycwb8zewPWAg3STxnT+bFp2F3q0VnfZdXVnLYcD6uQuI+AP0GTIIl7vDKmEKqZhcHS/0UFRG0gt4DN0/Ss8dn8uh81YyXNrCOv1YLJEGjGoIkxrCqEaxEmYsQYabDiIl5TJ2VBSzRVeMR3ZhkiKI1gRS7Z3/5yE+AOAi8xTgI1z18XNQHrawMeRH1jQU4qnhE3V+LsosZ3m5xqn3vcSzV13BnFmrkbyX4czph6jGsBogZ8Q4ClfE43RWf7KQ9V8so97XQkgnoFNVVEFA1DSUtjR7u8Pd7fdtDjXiDAsYLPu25tOe0Lx1CyWrVyBoGpaU1H09nT8VIgH/fhskDAdIze+CrAGDOfaqG6nbUcL2FUtY8v5bHHT8tP3WanPm7ffy/F8vYulH75Kc14uC0ePQuUwYsx3EKvyogRg6Z/xBrmkasQo/waU1xCr8JF00CH2iBUEvosYU7DUCJk1PVJBJSdl9TM7/AnaWP47BGXezCaEhuD1dXQBKUj40NtLafzQk9ydh4ZtEzAbMtzQSKv8OTQnjyY+XB9B/Go9lqMdDsyGVPDT6D8rHoG5iw9Y6ug953feQQ3G3RKC+e/HGgtEjKd8wk20rN9N/3NC9GrNIJ1McCtK3qJFElxmXw4jVom/Xr3F4ZFobuhKkXi6RjS3xF/05hwxm1Jh4BeSRo8cDIMWifDPrG6wlFaTVdXaRDkiJB8uOePFZeDFu2wl9N5f0rAy8oRgmWcOd0EFq6vzxQoQJ5u5Tv8/ODpMrb2FpnzMYd+6LXdpVvw8ezmaoKUz0uw9JEESsipmRSn9yohvJ2rkK1d+KuEvxQC3YhCoL9JHj9Dhry90APHnVSdgyOqwOn/ztdRr8ySwvjevaWJOzOPTQIcyfv5EFy6theTWgIzfVyPY2QiOqGpIkE4xGSLI7cSUmEfb7MRhNxGIRVitlbMqP8Gb5AzRt0Thn4Dntx/M21/BpZBmu6P4p7VC7fBlFX3zKzu1baURBp2n0S0jpUQ/pALpH2O/bb9WE4QCp+d0w4JBDGXDIoQSamyjbuG6/JTQQr5Z83v2P89JVl/DFw/dw8aPPkZCeiWd6P+qeXEvLZyUkntWP0IZGAkurkSoD6NwmFG80bsm5fCih9Q345pWjhmQuH30m7mN7/b/QrTHqctBoxiqfwrjjH+zSHmspRIjErRiO415Hb89EnfQQprYCiNacjpwmRZYJZE+GbcupH/svBh/dIcbXR/WzuXn/Db5MHT2GVJ2JH76fQ/a4iaQc1FkddcDEkcx9WU/RklV7TWo+t8UgGuOTVztKcghaXIDXJAjoFSt2q8Dx5XXk5HSsti/tF+HznXGSkZaW3mVcg9HESSdMo3nNTOq3lHVqO2zqZGLr1xPw+1n03Ev0feu19nu3siFO3BJcHZo0Df74/yTR0j2pyX05nj2jJXbN0gJQW5sQNB2G6GZYfCkIcKPuLsYHhoP5Q0RNJfbEcQRPeRbDu9PQCxFsgh/0YKt+LT6GJuIVC/DsQmjG3vENtfokLA6VsGsG51e8xRt/uZJxp0zn+nfvRpVlYt56Yt4aHLmDWXrSibTKMQbdeDN5xxzX7VwB3nt0LMWeIGgwp3xOJ1LzxbeP02JROci//1k+Sj/5iE/ffw1R1Ui12Jg08mAGn33eASvNL0DY58Odun9ajOEAqfndYXW7iQT8NJTvJHk/0qz5KexuD0k5edSVbGf9nJlMOf9S9IkWPGf0o+mNLVTdtgQAU98EEi8chLlvAnJDiPqn11N9zwpQVKwjUnAenoveY97D0f53MHzMXaxceRLe2Nxu2wPz/oZn5zYAorXL0fc5BVHfcX42LvgYedVrJIR2kq7UMEGIu06CrZ01ZfWyhLwfu/FEg4FpjzzFm1dfyuf33cG5z7yKZRdLnclqwuLKoaZ4816PmaHXUyvLPHzkQFqDUUIRhUBYwh+RCcUUqv0hlraGmLNyC5fkpCKHA+hMVnKpZq3pbppyTyIzt+cXtJjgQVME1JAf0dqx8jSajHhMiRiTklBEkaTUZABqmuPaN2lJHVkf9aE4qUm2dv3fqKrCNzYrdlXj4EmXdGkH0Gflo/27ATXQghYKoYuEmPjiSmR7A9snf0TODw8jyq2UvvIoo2w/1RkGCRte2wgYcFKn7d42/ptu8FGquPD0OgZql/LFaw+Q9fUXnHjnbVhTsrCmxGOgTP4gKclJuyU0AJs9wfbfH578cKe2Z2PfgQDZCXm7HeOPQszn46MrLqQhFsGKADqBK55/A8t+UFz4z4xwwIfZfsD99P8Wk865mM0LvmPbsh/2a1IDMOGM8/jk3n+zddF8Jp59Pnq9EcvARFzH90JuCGGfmIkhucNXbki1kXhOf0LrG3BMzupSF+r/AzwpA3AYjyeo/wJZiqA3dCZ05pFX4vXX4SzbRqz0G2x9OsdWRVa/Qz//SrYkHU1NYl9smf1Jyh3EwTkdqfByTGK73sVhqRL7M2xp6Zx04z9574kHeOLeu0jIysKgN2Aw6NEbjATNMXKGrmD2t0MQosMRBRuiaEcn2tHp7Oj1dvQGBwajHaPJSYYxil20MO2wnjWTzr/lXo5f9yzN60Q8upb4PDQBAY2E8rfhvx8SEXWsMhn5IDkLi96IVWfCqjOTU13GUECprUDsNZDq7eWsWLwOo8NG3/xUlE2babU7oc2q1tgSJzXZiR33wJet8cDZikiMn+bPhOQYt6bEsyCFD6dg1cCiQaqg58HDnyU7O56ALeh0CK4k+NHDpG3HnebDecgpRJc+gaZ34k4yQpguaLSMI/3mj7tsf2dIgJmb5hPGRIHoZtjU85k86Vy2fjKHuR+/wBvXXsWoQ0/EZLdhcjqwN7UQystFVVXqKwoxWR1Y7Qm01JeTltt9xtolsy7hs5M/A+JlBQJCXLPnFcNyrlXVfe7WWXz3HdQoMdCJ+ACjoh4gNL8Bwn7fgZia/8/QGwyoqkr5xnVMOOOcPe+wD5E/fCQTzjyPH95/k/f+/XfOvedRABwTe1ayNffzYO637yrx7kvIqoxe1JOZczTFVZ+z4KuzyOk1nZC/Cq93FQJmxh/1NNYLjyX0SCZaxVrKC1eTlj+IcDiM0+Um5OqF5l9GxjE30bBzI4KoIyOvs6jZ5tVbiOhNjBy4/5p8C7+ZyXffL0APhHP7EzOZCftD6BQZDdAEAUu2iaRecWuDEg0gUw+EEIQwghBGFCLxlG0ZCMHlEwQispmXPz+YscOvZlBuPAtq0epq1m5vxmrS8aTpSVxCkDpDAZV5Z4KmoikSZt923IYQBmSMtRuZKIV5JyWDeilAKOYlpKmY7CpDgfLGMnr3Gsjaq2+k3854dpQE9AYKE3Lo88+ZKOkW1AFuCsbbmLFLNuAxiRa+2/w8/2hWeK/ag1VvxW6wYdNbsBvjJN9mSOXmlOH4o61s8W7nG7mJ6oaN7aRmV2iygqo5EB1xgiDIPjRzKvnXPIW38C/IvmakpmoSV92CUQhhiHaNYap+/m+MrHmR4XoBUYgrNDcJExDkTAaddhTeqmqWLfmY72e9DkBms59hgHX1OooGDuoy3uoThmFMz0TVFNhFqaKktYQZ383ArDMTkkPoBB2KFo9l2teEBiB79FjWtllJ9YrK1JOn7+MZ/fkhxaLI0SgW5wFS8/8WUiSCHI1iMP85XDJjTzmT2pLtlKxaxuznn+TIy6/e807/D7GlbjNnfjudacnHcOexD1BddgoB62dUNP0DANUkIOo0vv/6bA4/+VMqzH3pV7EGz3vxqsVGYJlpAodEliAKGq63xvNjEmxweBm2XbJL1q4vRdT0jBzb9YWzv2DD+nU0Wiz0liQMikqtJDHU4eCEW25p7yNJEeYv+BajYRpTT7qvyxiapiBJQSIhLwFvPWXFi6n0V+Kxz6O6+HRWbxlPQd653PaZwk4prqXSoJzArbb3cNbtRK18BdGdgiaaQWcmZjATMySAKgIap4WOoM+UE8npH4/32b56LvJbVxFoK9AHUO7OwPDPO3Ah0dzSynarh5OdKXxU24xiEClPMTCnqIHbi6sxaqCGSrBGZ4FgpCiagKqGQY0iaB21nWJ6B6ccHq8gvm7j23yz5j7WlC8gJkcY2u9kXK6O9Ge1oRbQoXPFg4AF2Yfm04h8/DJmmw3BbKG5qgyjEKKFXkTzju10DgM7CsmoeZHKlEvI+MuDxFbNxTjrdBLnnwbz430OFnsx7q2VaAJEW/zc+8bVmL9uQpeWiL4tG88x7WRiAR/yF7NInbMBU2w9ggrC33VxIcQ2LK5a/HMvlT8MBaedwdmZmbzz2L0M7TuIgeeev6+n9KdH5MdilgcChf//wmA2Y0vwkNqr+0DB/REn3vgPXr3hCjbOm0Va7z4MPfyYfT2lPUJVFKIRL5FQM5FwC7GwF1WRyOl3BDrdbx+LIrQ9/D9tmEnSl06uOeFBIsFbaKrdimpOptgH83Y8iNEp4d0+h9cyzyLJcTJXlH/OWGk1AL2jW9pX0j+iQsjApXROU65uDuKWDDgS9t/ielui8Zf4eXff3WMfg8GMJOUjSWu6bRcEHUajE6PRidOdQ0beQYwDIrEIXyx9EUv0LUI1M/jbISZ2NgzgmDEPESl20fTal+iMGoJOxaipiHILgiQhRCUEQUbUqwTqTKR/8BEbF/1AztvzAHAkpdMChFvi1iNNFJE8yRx1wiHtczqi7eeSb9ZSDjhlWFbTyk67wNiAwEZ7AGsUXj/qE0am5rbvF1NkWmIhmqIB0nYRqqvzxsX0nmndCK0bOaP0G26b/m3Hflu2AGYEWzxuRzOmYIosg63r2/ukA4qmx3b9XBLcna2k/jmXYQey6l8m8NQHaHoDRiBmsiBoYIiFMail1D95JP6DT0dvsDNtxATuzljLKGtvTht7ITaTB5sxEYc5Cd0V/20fW5Zi9P7mTIq9xehFPbIq09vVm5LWeCHL5w5/juXfvMKHavdFXPcFUkbGdaK2bdtC04Vn40hKYvAxJ9BaV4ctLZXcw47YwwgHsCv297pPcIDU/CFI692X2uJt+3oaew1RFDnnnsd48coLmPPSM6QX9Cc5d8+1oH7EtuU/sOid15hy/l/oPer3V+qsr1zL+i2nI+q7VhX3tVzDsAnX/ubH7Js5CFGNGwFebH6fpz9RyGIMVUYLXltb8IPlqvjPSvA4DaxyurFnTsKRArn5fSgJqHxV18zQhpV40nJJyxtItq3rCigQkbF1UzB9f0KqotK0Fwl+NttIYrGPicVCGI17p2ViNpo5Y/LVyMpfWb9jKfXb5tDb8wXbN/+VI0/4ig235qOOPISRL3e1/vwIF7DiyFFoxo4sJWdiRhupiRdiFBQFxdq9gnZI0wABmyqgFwREVeOzE4Zz1uzX2QTkuTvHahh1elItTlItnR/+qhonrI/2PpvrS96hn6d/p3YtEAbMGEfEXW0L0y+l/9ZbEZAQiAExBEFCPrSA7J8QmobqErbnVKCqJqzuoWwPGhFavQiONAZSgShLiDoRnaLiSyimLPowxOIX1pWpAN9Tsfn7TmPGNIhpIq8Kf8WHmwbbBeC9DVmNk/oUa0o7qenv6c93kh+TrLF+5dekZ/YjJWPfLuZ0JhMHFQyivrKCYCREzc5iNr3weHv7OVYbaWPH78MZ/rmwv1fohgOk5g+B1eWiurZ6X09jryHLMea98iyxSAQ0jaaqir0iNY0VZXz5yL00V8eF6NbO/PI3ITWRSJSahmZqG1qobfKT6LJx0KBEVv1wFbGggqpF0Lk19JGJeDzjMBidmEwOSuuuFTbiMgABAABJREFUw9da2GW81qadLPn+TIxiLnl9ziF/4AmEQ9VYbZl7nXqv0+lxxyw0m+MEZkT9NpqSD2GSFqGfoGNociK90lxsDpRR4Eyjr2sIfb5ey1c/1PElED2q4zjnWkfy0KCeH/56gw6/YCAWjmC07J9uTKuxCX1aAz8suQeD3orBYEOvt2I02jEa7RgMNkTRjNvVn6ZmmdLS+fTvv/tMm59CrxMZ1WcCo/pMYOOKAdQH/kFDdTFyr8EIheu79C/5fClrvikhJBvJzxHQlIORbKGOOdvdxHQgtcYDjFWLFV0o0GUcgGhb9fASh8CTBKHNBePcVsYNcxSWzD8FLCYEqxXBakFntaGzWpF1qcRyBmJJcmOzWhDEqVwm57NwbTG9YyPoaxtG9eLFGO02DHYbSn0LYENoI1e9C5MAHUUptUy65jQeu/t99FEj1x3ZWWU5ENjBhsIjwSjiOHMTzoQUTpy/rr19+dgB5Fo69HX6AL1UBTkaRA76aA3WUUcVYdlLVPYRjbUSlX1Ish+vpLAsOiV+zjQ/ZtGFTm0l0ZzI9H7T8cV8+GN+EkwJiIJIk0vg3C23YFoHyy5cjd6wb7P2Jt91f/vvUiTCymeeQIxG+WHdcta99TpHHyA1e40DlpoDQFUUSlevoN+4Q/bceT/Aqi8/YfH7b6JIEs7kFI679mYyCvrvdp9IIMDXTz7IznVtbpWDxlK2YQ2t9bV7PN78pRvYWlZHQ2uIqiY/zcEYUcGATxYJqDqCGIgIpngxwzbo1Fqe8U1Dr1cRXKBF9EjeTA457hmMpo4MrMLtt6NqVUCcqLVUVdFUVUFp6ROYMhpRYi3srF9NSdXf0BlUpFYP+Xk30W/EGXt1rjxijGYgTUrgX9UzaG3R0W/GOJLcHSm/vRMz2n8/0mljFrArbTJIKh/IfrbO3ogowHP9stn8TSlGbxQZMIZlDpdyGGdUWfLm90y57Ki9mtsfjeSszRhzKgiH1xAR9mxWamhcTX9+HqnZFZoa10DSG4xYRh6E7/NKFj82G2e6k6QsB0anlW9nhkHIwCAE2VxpQC04HWvC1k7jhC0icqsXANVqw+htIqqoaJqGeRfl49hPuO4MLW5lmlKRxfCiLVTkt6CLyRgiMsaoijGmYorByoP+QXCTGYi0fUAkmxQyOQKRH7YDbRYYaKGfOZdeJhVBFPn+86/orcVdVxP+ejJ6vR4pKqK5u+oVSeH4BO3iX3AmxFPpj0t28XVDXCNJ7Iasi6IOo8WJ0eLEmpRFOqO69AHIWbAe0PhsRB+8ksL1NTaOSM3jkSPfAuCw3MPa+95yyWucXrSMDxY9y6emLYi6/esVYzCbGX/DzQCsPv14Wr3NbP/kQ0wJHiyJSZiTkrCmpqLbz+a9vyDi9yPq9Bgt+2cxSzhAan53FC5ZSNDbwqAph++58z7GK9dfQUt1JQazhcGHHsnYaWdg300KpKqqLHzrFdbM/BJNVUjOyeeEG24hIT2TF6+6mJDPu9vjtbT6uemDNRxTPxun7Kdf22p4mXs01qy+uC06Em16khwGkl02Ujx2inbW8shGaAwnkWarR/Zl0X/AP8ntd2Snsf0tdRR/lQRalA3vnwBax4s2d2oVaqOLY05dxvb1H1K582NUXRjEGipbbmXHp4+QnXUxA0Zdgij2LCB4pFtPti7CKO8QDBcOxPXaFoqeXQtXjCApoetN//zkAWwelE1BgpWDl22hNiaj6EVUAVYrMugEnp5dxHk7o1SaBHRAxKpHM4pk1fiwFPp2ez73JRLkVsSWLA4+dQGxWJhIxEc06m//yHIYTYsSiwVQlAh9+574q47X2LAEWfSQmJpH5LBJLKjoDYVAYQjosMYMSm1gyn/OJOYLcvIrF1Hn2Mkzb72GQWfAKBr5p0kl0BgvbIjdjjESInfhhvjfqoagaOhUDdnScR2M8wvcfmJcOdocEinP78NRM7/sMkdVVfnhL1+T76mn119GEwiFCQRDZKSl0DsjC9nvQw4E2Lq1mKqdLRg0FWNhMjEh/lhWSwKAi8IBtWSZ4hY6MapHb+ma2u9OykWOOFEMcvu2B/tlM9BmwSgKZJm6FwfcEzRNI9Z277xZ3cSK1gCi6iPd2lU5G8BgNNN/yBRsS1/HHhP2iyyonmARRCqlMJXvv96lzSwrGGUVjAb0oojdYsNoNGI0WTCaLRitVkw2GyaHA5PDidnlxuBwkjxyFMb9ODPo1yKezu3Yr8VkD5Ca3xklq5aTlJNHSg81cfYnyNH4StLmcrN+9tdsWTiPy559HbO1a+zD5u/nMu/V54mFQ1idLo6ccR29R3aoyDqTU/E1dhUL2xUuh40zqz9GRMM8+XTq1i/H5S1nsL6Z2287i8ryKjZsLaG0xsuG7S1U+yUqwiLgJui/GlX6EM24leKqGZQUjWXK8W+2P0S/fup2Yv642Tt70BDsHg/O5FQSUtPZUf4EBlsxOp2R/iPPof/IeKq9qipsWv4sVS2vUeu/n/IvnsBjP5kRh9yC0dQ11qK/cQh9HQtJsVro18vDtosG4nx1C9ueXYs2YwTJ3RCbQUnxca7NTeXW7VWoAvwrI4XDrVamFO/kld4mbpg2hAGJnc9540sziRSnESkqw9wvt8u4+xqKPopBsCIIAiaTFZPJCvx+KegxbR1GLR4Emj6mAF6vxGYXmXR0EjolSswfRgpL5B0ZDwQVrCYqErZiwUqqLZWoEiWqRAmYQQzEXYiizY4p2iEGc7LRil9WCCoqEUnFoQhUSTJHJ7vb+zjKy5B2k9koGWy43Cr983t3adMleDAlePjuyaU4fHGBv1FWgaAYQ1EUCurjUgqHX3B6+z76mAlTNwFWgiCA7CGsdCgkewx6bsyP/w9UVaW86HvkWAiLPZG0vNF7RTgUVeNEt5NiKco6X4iIHEVUA6Rad18CxSf5sav7t6L4BW9+SLC6ikhjI5GmRiLeFlpqqpGCAYI11bT4WqmKhQAVIRLCFwogqSoyGpIgoHZTDy/P5uLUV97+47/MH4T9XaMGDpCa3x2hVi8JaRl77rgf4Izb7+OV6y7HW1dDekE/arYX8e4/b+CiR59r71Nbup2vHr2f1vpadHoDE6efz5hpXd01ZpsdNA1/UyOOxLi4hSzH0OvjRGPLovnsXLcaEQ2D08OggX2JfP8hQZObYYcfTWlNM0c8vRpF0AE6TJqZRFEg1aIyzBHmhCOOJj35bGQpyrLvbiJq/5olc65k/OFPseCDO6guLAdE9CYjZ/z7nk5z881aQMiwGUkKYjB0uKtEUcfQcVcxRPsrm5e/yY7aZ/E73mX+dx9hNxzByIl3YLF2WK7cnsE0SwvxK/GVfd98D9suHoT26maKn12LdsVwUjzdB8NelJXMYYlOJizZwl3V9dyjaSRKcKXZgSeh60vScfhwIsXFBFcV75ekRjXIGHR/XJqnIGpoavxaEkURe4KZQHMldX6JxrIamqrKCTRVE/36adAUogYBjoBL3Jdw+UmXtY/z5Ttj6L+ygZVXzSBr2WqEWDyOrG80yinZJhxmMy6rGbfVistqwWowdlqlZhZt7TK3HxGsjbt+GoLdXwOyInPVf//LEN9kwn1rOPrE0dS8vQq9XU99XTwGr9rSyI91z1VVxShbsPYQNW4xTiCq+4Ca8nWk5wwHYNbL/2XT7OUY7SqxQAeJGX36JCaddvPuTzKwfEczs9+Pf0edKKCKLdgLINm6e8Lql4PYtV9mHfqjoDOZcOb3wpnf84Jz1aMPYrDbGfaXGV3a5FiMSHMzkeYmIs1NzHy8a5mU/zXEK3Tvv+nccIDU/O4INDf9Kaw0AO7UNC5+7HlEnQ5nUjLfPvsomxfM5esnHuTQCy/jy0fvo3LLRhAE+k+YxFFXXIf+J9L9LTVVfPXY/dTvjKeuvnDlhej0ehRZATSyBg7hzNvv5dunH0XTVBAEErOyWPDa8ziAY667ldEjBzFrRRGKoOMfB1k4/ZgJuK3Gbk2eeoOJicc8wfsPlVG5spL1n55IpEUkZ3QKQiyLsvXrOpGpUKsXye8grJlorF5Heu6ELmMKgsDgseczeOz5VJUuYfPa+wgZZrJwwWzswvEcNPkOTFYHCclDaK6GsKWkfd++eQkUXzwIXtlM6bPrYMYwUjwdxMnbGqas1Iu3vBV5h49nojKP9jcxPdHN+RNysZi6vyVNeelosbVEt/m7bd+X0FQV1aQghP8Yk7SqKCAEEcWOc+Xw1NNY+iZL3gPQYTAnYUvIIL3fcIwmM+XeQqAYj7Pz9bo9EZKtAtZ5CzGoKl6LCWskyDaLnfMbokAU6HD7iaqCUYphkiXMisx7bdv95WU4cjqTzVhLnNR4zN1IAQMNrc0MqZ2MIsiMmdKPwX364g7XQRj8Ph9WwDatY8wN2woRNR1pGd2LXR408QYWzl3Mxi0XIMsvkd1rNFuXxOtm7UpoAHxtVtk9wWzosLYoqoZojAdSp9izetoFAL8Wxo5pt33+DDjo+pt6bNMbjdjT0rCnxQme9vgDmPfz6uS/FgcsNQeA1Z1AJLD/vYh6wq6Fyo6ecT21JcUU/vA9RUsWoWkqqb0LOPGGf+BMSu60Xzjg4+snHqJsfVcNEk9mDlank7KN62gs3wmAzqDHkZjMxY89z4rla6l95DZ8OSMZNXwAAM2t8YfnlMFZJNj2/HD0V7iAZhJzPIy47FT6jZzG8s8+pGz9Op48/3RAQFXkXfboRZJ1WbekZldk9hpPZq8vqK9Yz/pV/yTs/Ix5c2aR7rmc3oNPo6QtqS3a2ozJFX/Z9MlNoOSSQWgvb6b02fXUnNqH6qImrIVeerfIJAImPVQmGPCMTWfuhFxE/Z5dATqHHyWQQHhTCZbBXd0Z+wyCgGoBQ9T9hxxu24bZ6C1N5KQc375t2NSB7FgFvUYdwwk3XI5e3/nRtmj9LFj3FWmezgUuSyb14YsxxSy4fDmqqhIMhpkbCBJUYrSGo/giEXzRKP6oRECK4VdlApqCH5UQKkvGjGf88iW0bt7UhdQYXXEy21zZ2u33KNnpBeDrAc/xwvodCOvMzOQBAKyvxauHO5wdGjc1TXF3bpqne9eP1e5m3IT3WPrDuWzddgmq/BKJZ8g0l1swuc8iEgzS2lpHnu8LhP57l2o9ItvNc+eOoiEQJRiVWVdfxA8hSLPvPhvST4QUYf/VVfo9ENNUzPbuJQH+LIj5QxS/uQCtQULTNDS09nhETYM8fwHRfGX3g+xjHCA1vzNcKal467tKmf9ZcPZdD/LytZcjijqO+ev15Awe1qldlmPMffEZNi+ch6aqJOfkM+HMc/nswQ7RrvMfeAKAt/95I3Wl24G4eyrsjz/sMzLjL5qCEaPa/fwt/niwZ+JeCs4lpObRWttMuNHBig/ms+bTJe1pRvaERMwOB7YED87EZBxJySx+93WCvqa9Pg8p2cM4IvsrqnYuZNO6W2iSHqN6/quY3PF2X9UWkl0T2/v3zkmg9NLB8PImEl8rwi7CjkwL20enktrLTX6mi/6GnxdzkHzlEdTe/wMNL60n4/Zk9An7x4pJk6JoVjBo7j/keDs3fYrmTCZ3QkdGYf7wAgSdnUgw2oXQAMyrWQCA/JPsYqfRSViKZxOJoojDYcPh2PsaZjvCzUSWL6Hqv3dT8dY7CCYzgsWMaDaTd/HF2CL1VJkz+eaGtzj2kXM77btlTfwaH5J3DH11YYJSkHP63Mox3onoMWCXnei2JOGuXIPNbEOwiEQMYZYtaaRXZiY2uwWdvvM15EpK4ZBD32XxgrMoLP4rLrOENupMzh8ZdxFvbthE7cYXsaRmszcQRYGjB3csdF5Z2ciSLRrJ9t27QF1YWG+oYfniDxgzce+yCf/MUFWVmChgdvz5iFwsEKK1pJq6jzdiiBixCVZ8YgQEDQERBKHNSi6QZspHS9i/LXAHSM3vDFdKGuUb16Fp2n4dMf5TqLLMnBefomjZYk6+6TZS8np3WoWoqsryT95n+WcfoEgS9sQkjp5xHblDhrN9xZJOY7U21OFKTiUxK5va4iKev+J8Ai3NCKIOVVWZ9W1c4TUS6DDztwbC6FUJp3vvHhJ9Ro+jenshvoZ6VFVBU1U0NS6lP/3OB9rjen7Eqm9f36uU858iM28SGbk/sG3D2+zwPdG+vbluC8kDJ3bq2yvbTfVfh7OjuJlhQ9Pobft1eh2GVA+ec/rR/G45dQ99TebdZ/2q8X4rRFvjpF1vTti7HWo3gt4MSQV77tsdnBsJ1g3i7b8tBjSiCghGEaP9XBoqKrjhmhnYXW50Fiui0Uhqfh92lJeBB65deTvWZQ/RuzWIWdOzwtMCRlBUBd1uMt16QtKYsazNzUaJxDBVVqFXFOyNcTG/xq+/IS9lFJsHXkyLX8eWokY+fXETCCAYRFzNMl6HyEMn/qV9vKPequBtz3w0FE4rPx5WBKna9YCJ4K+CRx7bEv9bEwloJuZLfTAINsyiiFkvkmOexpkHP4QeiJo7rFP+WPwesxt/2cu3JdKERRQw6nef0nvpIX/n4k03cWnJf5mVM4SMnAG/6Hh/FsSam+P1zVzufT2VPUKJyjSuLqZp7Q60qihOxYMgCLhJwmdswXJSFrmjD+1236p/L8GVt3/HiB4gNb8z0vv0ZdnH79JcVUFiVs6ed9gPsPbbL1n4zmvIbdL3H/73nwCcftvd5Awexubv5zL/9ReIBoMYrVamXnIlQw7tkBsvOHg8N77/Fc+edw6jPUez4Y6Pyb/ykHjwMBBoaQZBIH/EKJYuW4N3zju0JvXhkjNPbh+jNRjFqEnojXu3Khh2xDEMO+IYqmobue/t+TQEotQHZQKSyvDla5h6bOeUb1uCGX9Dyy86P4Ig0G/YufQdeg4lmz6lrOEmWks38NrSxYw/axB98zte7hnJdjKSfzuTtG1UXwILtxCrzSCwfAv2Md1XUP4jIfni5NBoTdpDT6BoJrwbLyxYfGUlfVJ+XtBh846VGBz1BDecSnaOnabKAAFJxWrUEZNN6MR+mGPrwN+KuXgLAuBfuYi+eoVInyRWDR1JTA7haS0mTIzeNTpUzUSsrh5Levpujx2LRtm2cQMmkxmrw47N4cCWmUXg4otYsbWIv990ExabDVVVqVq8mEh9A8HN9VADXl0q8x/dgBtoTdKjyRpeu8jgKZ1jU2ad+wwAtU2tPPfkoyQk2Jl0UB/ElExCqkxLnR97xE0sIhGNxJhbWsHXXidRDEx0WVBUjbCksjPcYUnZUfMNrzXNAUHAFNtBCtBSdDmN4n0kJU3e4zmfO68AiC8Qyr0GVE3P/OI3ObTPeUz/8DaKfCuYd9bHJLQJBp747vXsiH3Xvr8g7t8r+98CwTZxVet+WgV8wVsL6LOpM2l3Ygfs1CUrqC4Dxl4eBk+ZgE7XvStck1S0mIJo3b8DwA+Qmt8ZOYOHYbRY2Lp4AROn798F1co3b2Tmkw8SaGlGbzJx2MVx3RpvfR071qxkw9xZfPvsY/gbG9DpDYw9ZTrjTj+7x9TQydln4lTjL/jNT3zDJu+i9jZBEBh8+sU8cNcj9AfSBw3H7ep4wfnCMczIXaxbtasK8X4Yd2GpgoomaPGPDrIvOJhZG7bzZYOVJDQyzAKlopv1DRJp28vYWdVAZUMra3c2sTV4GMm6Fi74FedLEAT6DDmFVd+8Q6u9ivHbVYTnN/JtlpWRp/UnJe338a8nX340lf+YRct7dVhH9kU07NvbOOqPW2oMtj2TGjllCHrgc2U8X84s5KULRu9xnx/RsmM9GwtnIIWzGNT/GA46fRALH19La1ELFz0wkQ07W1h031pSjr6W0ybl4bEZsZr0KIrCO6t38EV1EwGXidRWP09eF3ddbX3/Hb755B1CdbV7JDVfvfcOG3aU9dhuscXdVqIokj1pEgC9T1HZuKKYphofy5euJGKz8J/bL9zjdw02ViCg0tIS4PM567ALS7n4vLPxTOpc2fuhOz8lwajx3PnDGd4ns1Pbq7Nnk6P/klHCaprlFFT0uIkTeVmqZ8PGy8jMOAtRZ0Gns6JpMi7nMAwGD0ZjMiZTalswtto+ZnlMJKIJXPPDAxxZHGBz6DPQw2HvTkMhyvLz5rIjvAJ0oMWSQefn+IeXMS1pCSccPpxBQ3qh70Yi4s+OUF38HrAkJ++h5++HaGMTgaoKJF8rxgQPpsQkzB4POpOJNQ0B+tC9dS61UQeNKpQ0Ml/Wc/hR3VtQ1VBcH0m0HSA1/6+hNxrJHTKC7SuW7tekpmTNCj67/04EQWDo4Ucz9aIrENtiE8IBH89ccjZFSxYiCAIDJ0/liEv/2iXz6afIuuRg6j/fTEhqxT0ij2MyDsaVnM7qb2ayfflcPvzPrfQPxx+ydasWAhe27xuIylhEtcuYrZsrsQtuvO5mNEUDFcSYiFvy0LypjESXFQjy0vkHMXxgL3r//XOe2Krnia2b2sewqSJBay5l5BKVwpgMv04dUzT1QtIWYvjrMNZ+UsigyhCtj61hTaaFEaf1JzX9t02BFK1mXEem4fs+QtXNH5J4/kisI/r9psf4OZCC8QBWoz11j331CVlckvcdcwvreW7U7jNodkX9+kVsqb0KveZh0uQ3sSbG962qDGAzx6/TwTkuZpoE1u/0cp8rXmtNp2iYZI2QSQSXiQEVMfrVBtvHtaTEg25DtTUkMoLdYUdN3CJ1/NRDiYRCRMIhIuEwkUiUxB5eZqIoMmxsX0qrG1i4/ityR+zZMgIQ81ZxE8+xY8JDONwpfDJzLh+9+zqHThhLwZSOGJUdofg9+FNCA3DRkY/x5lel6IQgZx83F4Camk/ZsvVvAGiaTGXVmz3OwWTKYOKERUw9rIRAtJlnl91IcXRVe/vsumfaf5f18XMz4a0TAY1swyQ+OusR5v+wgpklJbzT7OClT8swflRMctiLFQWboGARwaoXcBpF3GYdLosRt1EgwaInwWnFk+jCk+wmIcWDOTkJYQ/PnH2FYEM9ALbU30+bqSfUvPgC3ocf7bFdEQSee+B5FqU08uk509q3xySFUFgiGJYIhiSsz2/uLHf+03FC8UQL0bp/04b9e3b/Awi0NFOxeQP9J07Z11PZLVJyeyHqdAiiyLjTzmknNAAWuxN3egbOpBSOu+YmrM6988c7eqWyrX+YpuoggbIogXURAi3VwDBgLqY2QqP0n8DoMWM67RuIKlh0XfU4lLCEpAoMvuWk9m3NReWEXi1DbzPx1apiwE5Ng5fhwH2HplDV6CMr2UlueiL5Wal43A5mr/+BK973UVJTxsCc3ZeB2BPcrgIEPsHi0Djl2jG0NIVY8eFW8ncG8T++lrUZbeQm47cjN65jxyD75+N9fyPlFz2Bzm0n542XMeX88S5Of9VqSIK1Gy/AvMyDxz6Ovif3/JB9+cK9t84ArH3pRZpyHkEIpuEy/4uyzU0IcjUJCW6a/fHVYzQWw2Q04jDoGFkSZerYTAKygg8lnq0UURmeYCNx6SLUXbiyNTlOasJNjXuch9xWPX3UxEl7jI+LRmLUVzVjtpqwOcx8s2g1qiZw7ISRe/Wdgw1lWImSc/DxOFweTtPpeOmLH3h7wRZuGlSBLbkj0DfV0r1uzfaqrWRYNxO03Nq+LT19Gunp8RebLEdQ1QBF2/5Dff03ACS4x5GQMI6y8udQlHgg8/ziN7ht2UMEFJXDkvOZ17CzfbwBlhOpDJUS0ErRxBCSFkTEwriM8ViNJo479BCOO/QQwv4gP8xfTWF1K7V+B8GIRDAqE5IUmmWN8ohIa9SA328irN/VXdXa9inDLoXprQUY6hI5/pABjJ4yar9RLA43x7PVrGl/PKlpeeLJdi4StZqRs7NA2CXAVxTw2R0khjsrkhsNOowGHW6nmebWMCHAZO2ZNKrB+L2mO2Cp+f8LKRLhswfuRG8yMfaUM/f1dHYLR2ISJ1x/K58/dBdv33otlz79Sqf6J5c89sLPHlOKKiz/YgcA/camkVHgYs2scnR6gSMuu5o5LzwJwE133NLlJTGUbWCEO2/7FwKQl57KeVdejRqRUX6ynJBkhb8QwDi3gvVtJtY+uXGrwelHdzbX/4i+6TnAJrbVVP5qUpOdPIhqn8a2qi2kuceTkGjlqCtG4W0Ks/yjreTtCBB4Yi1r080MP60/aZm/TdZS05N3oTTGfflyrZcdJ55J6p0Pk3DiH1ygry0dXXEpBF0NKLXz6V5E/+dDVVWqU58nGnSxadN4VLXDhXlueFL77y9dsxhZlNCrBsxaDO+jf0VnSMClM5KgN6HTmxCMZioCKmmWDjeTLS3+e7hpz5lwuSnJbKms4eknn+WsCy/AaTVj0HcNLpZlhZf/+R1asENEUcCIwV1AWuLeLQik5gp8WHG2yQRkjTyCU6p38smqKgyWDrfmCEeAtX47Nzz4HFMHpXHcsSe3t6W40ymSzfiDO9u3tXhXs3Pn0/h86xEEHZqmIMveXdqXEggWoSghDEYHd82/gA/LV9PX5uCY/Kt4dFNHJfR/jXiGM4fuXU07i8PG4SdOYm+KxURlhdaQRFOjl+aGFpqbfDS3+Gmo9rO+VuFrr4U3Z9eT//lbnJZr5KyzD8eTthfxXL8hli1bxoYNGzCZTBx22GGEvS0ImoY56Y93PxmuvBzfK68hyjJiTMJSVMyuVE9pe7Z+lZzJW6sqMMoqeQY9VocRq8WA1WKgsTmEG7A6dkNqfnQ/HYip+f+BdbO/oba4CE3TyBowGF9jPaVrVtJSXcX0Ox/A5t7LzJB9iD6jx3LwSaez4vMP+fie2xl17Eks/egdZElClWUUWUJVFIxmC+c9+ES7oF1PMJo7Lq+qohaCrfHU2ZQ8J0OnjmonNYFAqJs0WhUjMtkpiZQ0+WioryHma0YXENALnW+qZs3AVlTARZ7Yyp3ThlGQ19Ucvytyk7MwiGspbvj1GkL5aYOoLoG65kKgg1C4Ey0cdflIvC1hVnxYSG6pn9CT6/g2zczQ0/qRkfXr0j/d0y+m6am7EO2JqIEmNDlCYFEYgSW4/0Bio6GBDFmB45DlAIm9p/5mY+/Y8T1mWwu5KfdwwjHTiPjDvPPcU9QoEoHxIuPDJu6pbcZv92CURLJr6+hTshKDxUVy7gikaAQ5FkWORpCiIZRYCWJ4A5HZbgyjjsLsjr+Ewl7vHudy6gUX8c5/3mBDdToP3bMAAB0qRkHFIGqYRA2jCHlBPeODNjIP0pOY7sDnjbJzUYjErD1Xuv8Roq+SJjGZXelv0N+KHhmjveNZMljYSauYwhafkU8X6hg5ZAfp2fHjbCl5D4s+gp+O+7Sk5H5aW1e3/63TOdDp7GRlX0rZzscAEAQdYVXgk7pmfgis5ui0wez09WonNKNdZ/LySf/83bI5TXodKU4dKc406NXV8iHHJL77egnvLqnnkVorDz+6lDsK4PxLT/hd5tMdvv322/bfy8rKiPpaMagaou6PLw1RMOMqmHFV+9+qohD1tRJpaCDSUE/RstL2tr/5m3h8dYiMxg6tGRlwt/2e+m4xO75aimaQwaCAUQOjhmAU0O9MRcCIYNq/y1/8KlJz3333ceutt3Lttdfy2GOPARCJRLjxxht57733iEajHHXUUTzzzDOkpvbsb9c0jdtvv50XX3wRr9fLhAkTePbZZyko6AhYam5u5uqrr+bLL79EFEVOPfVUHn/8cez7gdhRZeFm5r4c9y97MrPZsnAeJpuNxKxcTr75tj+NojDAIWdfQPX2Qio2rad2exFSNILeaEQQRQRRRJVlAs1NtFRVkZy754f05LP7UVvaij3BhD3BjM1txJQosWH7CoozAwTNCqd98DfS1CLObRbIizbjUZu4gzbBsl0X0I88TVLsHqLCUMqv+xjQEAQVn6ADo5kBTh8OazEvLN/BexuXoUcj2iARqvGRkOAiIycbm9mA1WTAZjYiqQZKa/deq6YnmE0ufDEXklrabbs7wcKRl42g1Rtm+YeF5Jb4iTy1nm9TzQw5tR+ZOb+M3KRcdQ5yTT2hVctQA03oU/NBrsf/fSLGnGKsw/dOYO3XQpZ8iBGRfqc8sefOPxM1tUtQVYF+/U7EYDBiMBtpCbWCycqL29fy8ahDITWTwYFKklOgvFGgV2Eh4lGHMu7w43n97pvQhWRUo4hm1mFvBWN6DeYl1yLNM6Ic+ww6VSXi23MmnMFoZIMSt+z8/ZAkAmEJf1QiFJUJxhTCMQVfUGVYvZVGl8pfL41bkj78rAgIcdjRex/3ZAzV4jN2FtnbUFKNjJON37zEkGMvBSBfqKOPs46Jp1zC1Fd28t3iJZx4tIOSai+hxrhsfwqvM3vmW6iKDoM1BpqBqVMLAZDkKHfMO4tvFz+PXWfjmqEXMXvnNyxtDpBvsXD94Bk8tOlRYDN9zccxMWsM1447aZ/KU+iNBo6eNpmjp02mpqyGcc+u4d/FMGFTMb0H/zHX/K5ITEykNBjAuLuAlD8Qok6HJcGDJcEDffvRJLn413uNjD83HU//HMLfrqYx0Yzh5F5EwhLRiIxW10zuEh+xxGqENBWiWlvxeAFCOpD0yGoQJakaQdw769y+wi8mNStXruT5559n6NChnbZff/31fP3113z44Ye4XC6uuuoqTjnlFH744Ycex3rggQd44okneP3118nPz+e2227jqKOOYsuWLZjbisWdc8451NTUMGfOHCRJ4qKLLuKyyy7jnXfe+aVf4TfDyi8+BuDq1z/EaLYgRSIYdlPkbn/Haf/8L09fMh0pEpdSP/XW/5A1cAgAyz/9gMXvvYG0lzLrPs9W/lZ6A4pXAy/oFAHlx1iZNh0/nbKGamOIM3RhfJ7xtNjT2Gb24DbrsYoyvsZahpS/CkC0ZgFqagY6uwSKhqaCRw5xuCVEvb4eX8yOHNFTHdARDKmEgy5kfSJS0IBcqKIJEiDxYyXnqpLfRu1Z2GHFUrqOeUVvYkny4ExLZsDEUZ1Wbi63hSP/MgKfN8zyjwrJKfYTfWY936aYGHxqP7Jy3T/7uBl3Xw+A3OIDBDRJouae72l8fRPp6R4Mqd1L6v+WkJUAYuz3Wb1Fow0osgXDLsHcZ1/yF96YM4/kuhqOCzeRKsIV48aRk5SIoijc/+6r8NV8Pv5qPnYgZAdjVjJKJEoZNdj75hAtb8Rk9WOYdylW42i0yPafNa91m3fy7N9O7xLT8eA9S9ET4oyrDm7fVrKuAc0I/fvs/f/CFmvE6+jsxBuYm0RsRzMfr6hk9ca/keIwUR6N23IODsRjOm5b7+a29fHSCL2d13Lz8BJcBgsyQWRCRALLEIUOq+j8ktf5omY7x2cMZGl9IXeseYUEvcBV/Y/h4oPu4b2NiwE4Jetv/Gfqr8kV/H2QnpvOyuvGcsx9szj2tY2c6VzKnf8+7zc9xpA7ZjGlXwqjDsnilu1V/LNXOrVOD0ZZ4vTjjyWzoC+bwyEMbbpb+yrOR5JjGLqxnod8IQQgI91FstNMFaCZDbjqo0QbI8QaQmgtTYAB57F9SBo0qtvxN268CkluBX7b8/tb4xeRmkAgwDnnnMOLL77IXXfd1b69tbWVl19+mXfeeYfDDjsMgFdffZUBAwawbNkyxo4d22UsTdN47LHH+Ne//sVJJ8WDP9944w1SU1P57LPPmD59Olu3buXbb79l5cqVHHRQvDLvk08+ybHHHstDDz1ERsa+FQNyJadittlRJAnMlj81oQHQ6fWk5PWmqnAzAF8+eh8zXoxXnv0x4+nD//4LUSdywg23kje05+DHRdvmoQhxEjNJHE6mPYNUeypprkzSPdkMzh9FTfUKjl9wJSlTb2XUiEu6jCGVboQ3XiUSTiLzhbcRDJ1vXFVVOXtmX9JCkxl4+svt2yuLl/D+P+/hmOvPZeDYaaiqSjgqEQiE8AVDzHztHpTqcuC6X3O6AMj6NoitqAnoKJ75/eU3cuj1l3bp63RbOOLSEfh9UZZ+uJWc7T6kZzfwbbKJwaf2JSvv57sqd1UXTrpwME1vllJ7/xwy7z0F0fT7+sAVNYhO3vtjSCEfRcdPhLAMJh1Y9STdcDVph1/cpW8kspafVvvO6VPAyTYnHz3/LMemJXPqyI6FlU6n49spGubWOi7qdz46VeDYw8/DbnWhyDGGvz2KyRkjMFz8NrFtq9GCLaSvvB9wUr9sKQaXC4PLhcmdgN5i6WKRuGqAyEdbvMxqdiLLCkZjxwvsu29KsZaH0Y3wkJcd/3+EIjL6uij6gp8XJG5TWmmydCZBh5z3Dw4BltxxKN+FJxKKhXCLMYyCSsGgg1h2dR3vz5zHo8WpJOrClLbms6Q8l/9c0RFUP/PTgxCIW4BkReLz4k/RofGvSS+wtX4RW+tXcdqQv2ExOnhl1Wye2fAU6GBiTmcl8f0JyWmJfHXVBP751EzeCGVztT9KsuO308bxR2S+XF/NZ0mAXuDu0hoYEbfCfVAXhbqNCGddz1Hff4Z81skoioIe0AkiOp1Io9bm6tE0+qVmYbLZMTkcWD2JFBx1LK5ev77kySeLXuf20ocQVTAoOkyqDqNmwKwZiGoC5v5pHKN7kKgvhigIOKsDaNUBjICoaUT1Cr7UNegsx/V4jGisAYt57zMW9xV+Ean561//ynHHHcfhhx/eidSsXr0aSZI4/PCOcLD+/fuTk5PD0qVLuyU1O3bsoLa2ttM+LpeLMWPGsHTpUqZPn87SpUtxu93thAbg8MMPRxRFli9fzrRp07qM+0di7ClnsmXhPN77982MPvFUBk4+DPEXqJPuT1AVGUEUMZjMqFpHdkWfg8exbvbXaKpKa30d25YuJm/oSORYjJaaKlpqq/HV1+FraiDY3ExroBhy4cVRjzF2cPexFsFw3AVktXT/Mm/553RS+gFH39WF0EA8bdbgNxOSO2uIpOYMA0GjvqKIgWPj/WwWEzaLidTkBKoGpbC6cCdSLITB+Ou0M8zoUKdkYJ7xDI3nnYMzFqTPEZN2u4/DaeLIS4YT8EVZ8tFWsrf5kJ7byKxkIwNP6Ud2/i+Lw7IOL6Dp7QoEXQb+79fjOvKgPe/0K6BoYUSl6/9lwZsv4/AkMvyo49DpO0hPuGorumoJ1S4gtsiATPNH73QhNVu2fIHZXIkn4R9dxk51xN3OraFQlzZX1kh02jamDjkFR0oCJlN8kRFsiRcetUd8iFYHxuFTUOor6FMSz7BpurDz8VUBFFFE1elQDXoEt8SI04xUZh7CZ9VHcOXrb2A2CNiMInajHs938cXViPx6Ni9fiNlqZebiFkyCgiHHjCQr3QYWd4dMrQ6fFnfBtpRtItRSj9kBdlcyB+vWMtpUheHmbZ32ScvM49HiuJs/IOnQBIHagNSpj6CLIqHjhx0f8sbGZ1ja0sD1A47BZnJzUPYJOMyjGPfmyWioqEIEBJk0cQJjc/adZMDeIK1PLkf3cTO3Egy639YN9NEV4/CGJJ6L+nEZdNxTkEWLLOOXVfyyQkBRuWzzTlqTs/AXrQGdQO+EFFRVQZVlGoNtrnRBoLqmEllTkQFJr+P7BbP4y31P7LZS+N5gVuUcAM51nUggFiAoBQnJIUJKmBKtHr3mZdnqdUyfdgK6k3qjyhomjwlrshVzkpkVS64iGJtFuvOkHo8hyz70hv2jNMvu8LNJzXvvvceaNWtYuXJll7ba2lqMRiNut7vT9tTUVGpru5ek/3H7T2Nudt2ntraWlJTO/mW9Xo/H4+lx3Gg0SrRNERfA5/N12++3gNXl5vTb7mbpx+8y67nH2bRgDtP+fjsm697XkNnfIAgimqoSC4c6BTm7klO55PEXAXj4zOPZOH8OG+fN7nEco0WGXNhRva1nUhOJm87tlu4zGExZbiLhOp5coaEse5tTjjmIvsM7P2TNUiJRXee0XIPRhtmt0Vxd0e24SZl9QFtJQ+VmMnr9vDTjLpBUQKD88isw63Tw0ptkD967HCC708SRFw+nrsbLgrvfZfDSuUg7zmRWXjYDpvUjp/cvIDeqBDoDOvvvr+aqiGF0alfr5OqvPgVAikYZM+0MZH8LVW/di6Gt8KMY6CDL6qaaLvtv2vwQZrObQ6dc2KXNbYkfr7axayr2MfJBnFhyDLFnS2kCFBTCuighMcJjupuxJxTS/MGRiK01aHKcZBiG56M/7UJkfwAl6EcOBFCCIdRQCDUYRAu0Ylm1AZNfon9aA4PDZVR4zURkHWFJT1QycK6oYFV1rPrEQDz80kfEWksgpQQ2wd2bPkHSRGRBjyrqQTQg6A2IeiN6gwG9wYTJZMRsNDCZQZhqtlC88EM+nrcKvSPA8BFtwakTEgEF3Zxe6FQBnSqiQ4c37AZuA2CsJ0aaQ+C2CzuvvD+LyPwQLoWFd6IHbhtxEfWhvgx+bRiC0Jbrroc0YQpmg57RaaP496Gda1btrwjF4hYRi/G3XVAelBe3mN21ooXF3gBuIYpBrsGh1+M0GJEkCbAzMXkkUyYEcKRn0Pf06Z3GePjMePHVyz76GgBNklj16IMsXL2E5U8/TmJuPianA1duPllTDvvZc1wVi5fNuOmUu7u0vTP7fbYt2cq2+rXcuWEtAjomH3wkUw7pkNEQlLg11OHq2RIjyz70+v8xUlNRUcG1117LnDlz2mNd9lfce++9/Oc///nDjpfaqw8n33QblVs38fmDd/HxPf/mrDsfRNhPdBR+Lo679mY2LZiDIsv0HnVwt336T5hMc3UlFqcLmzsBuycRV1IyrtR0PBlZ2BI8BMKtfPzRJHxyz7ErwYqlANh0nV/A6+a8g7LhA0bZ4sJ5sxt8bNdn891ry5lesJnp5xyB3R0365sNmQQs1V3GtidZ8PUQDJycNQiAxqotv57URBXUIi9p3iDy068wYOLeW0c0TWPm2zPxPHQHQyPx89Tc+jDpwt9QX4wxK9FIv2l9yfsZMRmOqS4an36LyjkbSL72ShLPn77nnX4hQundB9kKYpwY//D+mzTVVjPQUE/kia8IjUxGs4MYL8SO6hbQNar4d6zFkR8XwNM0DavVRzDYu1urZ1MwbqFRta4CjePzx8HiYhozZQIFUeybIyQ1JGJXrKRIHgzbX8PjX0XIbkFWDIAd84gcsk7rufCid/siqk+4DL3rBM458e9c4e6egEvRMJFwkHDQTzQU5K0PZ+G26UjseyyhcIRwOEI4EiEajSLFYihSDFWKEo0EiakSEVUmoMl8IbSV9Zi3GbAwODGuWNvPeRF6fxmK0YiihpHlAIoSRFEifCfWk5/3GjbVxZNn34HT3fUFVdRsIsGq54FJ/yTd1Y+l5a08V3QZnbxsqpVZFzy+32jA7C3CUpzUGHuQ+f+1ODU1gXnNPpY3V+CTYoQRCSMiC3aStTqOq/fQ/5obdjvGw2ceTxI69Ho94VgURNhQXgwVJe19xixcwJBzzsfVe89Bz5u/n8v3b73CmYF00OD+WcfFsxEFUEXQRJBS+4LVHd9BAA2F5mVP07Dm72iiAU0wsKlMxusdwLrnT+80vtkh4M62Iup0RCRwnyDAfp738rNIzerVq6mvr2fkyI4YCkVRWLhwIU899RSzZs0iFovh9Xo7WWvq6upI60GU6MftdXV1pO8iU15XV8fw4cPb+9TX13faT5Zlmpubexz31ltv5YYbOi4wn89HdvbeVab9NcgaMJijZlzH5w/dRUttNZ6M/d8H2R2cScmMP+3s3fY57pqb9jiOw+pGpwi0hHrOMgrKcYua1dE5Dbtx8ascLqxgg3kUfsdwvrrpAhbPXcm985q4p0zPu3d8yjf3nIHJasbmLKDevJxoay0mV8c14UpLonJ9D5aajIEIokZjVUm37T8LkoqWbIOaIOXL1zJkavf6OLvCV9/Epg++pGnWHPpsX8POtF40nnQlo044lPpzLyC8+GEKT/sX/Zsd8NImZnkM9J3Wl/yCnuvLxKoaqLvnaQLffwaKDJpC/b13YszLwDFp9+6wX4qKRWkEay2UfnUiOoOO5LwMTpjxNMk5+dTvjJ/b0jXJOBu+IwkQ1jR0zhPJc8O6FipOOAvhyAJEp5306deg02Vhs3q7PWaa00HEZCKpqYjGpko8Cel4QxGq/X5kq4oKNPXPZuoRfdhYcjuy4WC03GYsjVWYLHX4zMnoT3gWc9JIeHUiavru4/K8FZtZO+wavGv7sWHbQsZOc2O0mDCazSSkpGN3edi8dBFGixm7243Dk4QiKERjFiZPyWX8+Im7Hf+nUKQYUrCFiK8JJRahsG4m4chiMkb+o1uyUR+s4b2PjgRLIY3A5sotjOuG1PgMkKKmcO38twiJHe6rKcEQpwUiXJXq4bTcq/50hAZAM8eDyZsbmklM+e1rMF2dm8rVuals2PgoDQ2z2rdLmp7E0mPIOvjvPe578MARrNiyFgAFDUWWCKKSbrAy/Y0PkFq9lM78mm8+f5/lm9dQfvsWzn7roz3OacvCeYR9rZgTXMgpZuz5WWiaiqooKErc/RXc2Ey0jdQ4hBAWQSJPrEU2JSGoEoIqkW4M4qWrCzni14iGoqiKRmtFAt4hRvh9vdm/Gj+L1EydOpWNGzd22nbRRRfRv39//v73v5OdnY3BYGDu3LmceuqpABQVFVFeXs64cd0/5PPz80lLS2Pu3LntJMbn87F8+XJmzJgBwLhx4/B6vaxevZpRo+KR2fPmzUNVVcb8RIn2R5hMJkymfVNILSE9/nKu3LLpT0tqfisIgoBZ0dMS6TllNmjzILRqWBydXywGNcJMRnPMLR3F8aaeOImpJ05iyZzlnD1Xx7xvlnDMaYdhTxsG3rfwlS4neUSHXzgxI4eSRZVEw62YLJ1Tp3V6IyaXhre2q4XnZ39PScU8PItttqHkvPkMK/v1ZvSpR3Xq09zYysZ3PyO4YgW24q2ktNSQAEScKWy/8DqOuf4iDKb4g8X4/ltsOeMcUj++m/ATz1NfqpG+1Yv48mZmJxjoc3IBvfp1WAsCS9bT9PI7hFbMAVXBfuiJpP7jGjQpzI7jj6dyxpXkvv4a1oN++ydS05a4eyxxuIOqda207Czjo83XcKj9dGqzYiwLKAiCnpKE83AaHsaalYZ+bAFakorek4z/wbfi51AWUDaUobZIVHx5McYbRlBb30D59iJUVaWlvh5/cxMt9bW01NYwtnwuaVU+kirv4g6u7zSn04VxKJt2whF9EKJWYvZqSpKeRfAYgUREzIirn0bUWUnTaURbdq8oHKrrjTchbjGSgm4WvQUQbfu0xUygI55Z19D2AbdhGIMH752K8K7QGYzo3KmY3XG3vFT5LrJs6pFsrLnpPD6YF5exX9tLoCKnhJ8+cVsDIWJ6hUoqQIAh9hMZl3kwaTY34wwSnvTBXFm0hotG7I1E3v4HQ4IDahTue/wZhuok+vftizMlBSkSQZYk9AYDGcOH4/mVqtv9+91JRvrpKEqQYKAUsdqFK2MiloE9W1IPuf2/rD/tWKI6kZYfa2mJIg6HC1EUMSV4GHD2efQ+6RTeufjsva4Y70pNg03rOf7yG+g1ovt7+7t/n0t1+XLOe+nrHj0Hx7Z9dsXHV52AXq/jpPs/Q5YkHj93GgnJ+3dsFfxMUuNwOBg8eHCnbTabjcTExPbtl1xyCTfccAMejwen08nVV1/NuHHjOgUJ9+/fn3vvvZdp06YhCALXXXcdd911FwUFBe0p3RkZGZx88skADBgwgKOPPpq//OUvPPfcc0iSxFVXXcX06dP3eeZTd/BkZtF/wmTmvPgUsUiYg47ft4HM+xpW1YQ31tpju6RE0QSBkW8MZZo5i39Pj8cOJNiM2Huo8KtJHh4gSKgwTpacvcahW+ZgZ/0L6JqTcbvHIooiKTkDgKXU7FxN3oCuvmpbouUXV+vuhJiKYDJz5AsPMevkc8m4/e8UpibRd9xwNn4+h+Kv5pC7ch5JUpSwJ4v63oPwDT0Lh8fJ6NOPw+HqrLeUmJvF4A/ixCZw3Qx8l1zI0tJ59Gmppm+fv6B7VWKmrpVedd8jbNuKUl+KYHJgP/QEUm+egTGrw1qV89ablJ05nbJzz8N54gmk33vvby4Slp+ezSm3PktZ4QKWf/EKCYFkiIHOFkVoU9YNmlOIJPTBuHMDhuQ+5N/+GACbPvocNsfdboPmrMdbuIDaaVcSXVpDbUMyHy67sdOxNEAwWWiKeijBQ6nfg13cRiglA7VNbbdJ8JPWbEOOKkSqE3Hr+2EtnEC07zZUIqi0oggNCMQFIVu/3wTX9vz9Is0SoOPS+0ejiArRcJBoOERTbQ0NlfVIURlRJzJkwkH4mpsIeL388I4Oo2jG6czteeC9hCS3oqo91yjLbxLby04OqVIpGN+Rfq1pGsuXL+fbb79lsv5Yvs/6hjzT4bw17b9dSNKMg3/6avvzwJWXCVvK6We10txSw9fFxVBc3LnTmjXYIxFGZmUx5corf5FFymhMIinp0PgfqcBeJi9d9PgLNBcVEvV6ifpbifr99D7meDRNY/GjD7J421Y0nR4hIRGjAKGAH6t991lzP8ZtutN6LsYaCYUxm3TthEYOVlO/4SEEJUba2EcQehBRDUdkUlLj91PEH49JtTj+x2Jq9gaPPvpouzjeruJ7u6KoqIjW1o6X3M0330wwGOSyyy7D6/UyceJEvv32205xO2+//TZXXXUVU6dObR//iSd+e7Gv3wKCIHDs1X/DkZTM92++TEJ6Br1HdW9R+v8Au2DBLwV6bD9+3N8xrbTwn+o5lEQa2rcrogm9FuvSv7EuQObCGnIxoPkSKb/uIwTBQh/Tk9T3fY+1hvMQBD0u10G4HUcAsGHupzRXbydv8FQ8qR2+akeSm7pt3Qeb/xwIEogmM0aziYlvvcTKaWfCjEtZkJRBek0pWSY7DYcex7AZFzFowN49BRNysxn8/tu8fNMVaAs+wwpUJLrYLM9m6sIGSofcSKn+WHobY4y8/nySzj8Z0dKVBFqHDSP33XcoO+tsfF98ie+LL8l84gmcRx7xq7+3IsVwhSIkby2kbONMWmOrGXvyObQuDcFW6PvXsYxI9RCrbaLqxjtQjDEknRHR1hFEn/Wf+6k6/0oYkYYgCMi+uKsypOmxJQsMOvoSDEYT7uQUEpJT8KSkYjAa8e/cxMrXHiAUtFBT7mOM1Iss1yAWSWW06Lz0klKpvX0Jafr46lJXOYhF1WbmjZuM1aTHrGqYNbhVdwvh2t3rLgVbIhhkBVNbJXmrww1AWm4B/OTWTsnqRSQcYdF780nr89skCyiKH03ryNBbN+trbB4PBaPj9ph+788m5mtg0ScXQcpWxHXvMWjMxaiqyueff8769esBkKIpXGF+hL9O//X/+/0N9b54nNW0q68g0WmjtbKSYF0dRocDncGAFAhQvm4dhUVFLGxsJOu77+h75JF/2PxsmVnYMuOW++aKCrZ9/z1fv/kWldEoIZMJUrMRFAVNbyAKrFy4gMnH7l4lOdgST7JwJaX02CcSiWE2x7MPS+ecyA7d5vY2/YY0/K3rMRgSsTj6YE4YTCxQTn3lB3g1kUR73PoX/v9EahYsWNDpb7PZzNNPP83TTz/d4z7aLinCECcBd955J3feeWeP+3g8nv1CaG9vIQgCh0w/n+aqCmY//ySXPjUcg3HfuMP2NeyiDb/Uc6Cwy53HaUc8wvw3xiG2RSw2Ni0gmNWCrUnp0r+lMYQFgebjc0hdsx65VkIwKahhJ2Z/Dvl5V1Nb9yVe7zK83mXorQVsX7SD7Yt2kDViMWfe0lGZOCEtnbIVtShKDJ3ul1UAVlUVJA3RFF9JJyS5GPH2q2yYfh4GfyuVl1zPpKvOx2T5+cH1rrxsTpjxd5786iMK+wxlW/5AImYrmc/ch2jUUCWBkj4n07i8lmkn+LF1Q2oArCNG0G/jBhoefYzm116j6pprEJ55Bsdhh/6i7/wjYq31jN7RiM9VwOv3fMn6c/sw7bvb0ReOZ2LqNBqXLGDLuGw2zLiA8Vs77nu5ugw1EkU0m3APPhT3mq3tbb6d8dX1gpwxjJeKOeT4k7s9tiNvMIfd8QYVxYsp+ud95EwfxoCDT2cQsHHhfFZ8KJOUaiQ1w0WwsY5mvUaZdQAlaVkMaamlVRCpF0SWDB1FTuvurXXhQAyjKu/1eVmzuBBRNTF0Qt5e77M7qKof6CA1c195FoChR93BERfH3Q5GZzKTz/2Y72aOpKLqNQZxcadn6pjxhzBjXphxxv/N6jhN/ggiKgn2+H3oysrCldXZ/Z8yZAgjZJm77ryT6m3b/jBSE2hoYNv8BZQWbqUiFKK1bcGeEAxSYLPRa9Bg+h5xOBa3m1ULF/DVvAXMX7GahUuXYxDg9Oln0XvgoC7jlq6JZyHrDD3rREUiMk6XnfrVd7JDt5nEWAJuYy9KWM0Gb1zUVKwFXdF3oAMpTcMMSNG+6NPioRT/r0jNAfQMQRSZfN4lvPG3q1jw+osc8Zer9rzT/yBcBge1UsMe+wXUGJmGeNzL+vWXQBoIxo6b9bsf1vPcd5txxOz8lwTMLjOp15zY3r7jlXcx1/WiV6/T6dXrOmKxZurqvyHj2hbM+n4s/vAlfPWd3WCezF5o6jqaaopIyRryi76fGg0haAKipeOlk5yTzqT53yDqdOj2Upuk05iKQvFnK/miDh4a4IQTOmuovHneTSw5MR5fVjZ3HbPeDfL5v+dw2iMnYnR2bx0QDQZSb76JhHPOpuToY6i+6SYKVq7YKxP84tnLuHhOLSIaZlVCRKDZYMWgyVw06VZcajKycxGDvZUc7LiW0HkhfFtKcC7vje0fFzC+bSHjOvUSWj9+mWjRKoqGD8dYMJrs5x5G53YgWIyE1xZRNHM9aSYTH40+lbGL7t/j3Bprl8V/MQTbt2X2L2ChtI1eh4ToN3kCMJiRTGXx7EKs0RBzTjm6ve+n38/BUt81pXxXVPkcxPR776rYvqoWTS/Qd8Rvk5ygaUEEoWvG1dYfNrWTGgC93oSmgsWYHSfbbbj88supaYkAW0h0/TpNpv0VTYEoFlHZ4/WsqiqaKGIw/rJFzN4g5PezYu1GlpZV8bnZxqDqHWS3NGAPh8kyGpmQl0ffyZNx53cuNeNtbmLOvHmAiKCqKDo9CqAo3RNqsa3o8KpvFmG2WTFazKTmJONK67DchKMqVrudmrrPsKFn2NHLAQFX0SvEgmWIejf1f3sJsU3yKXaIlQFPzGfZq2dj8cTd2D+SGrPj54lI7gscIDW/MxLSMph8/qXMffkZcocMp+/Yn5cF8b8At9FFKNrVjfRT+DSZ/ob4A9dhH4Q/sJmEqg5C8OWK7awKu5gk+cGQgFhdAUM69I30KWa0YheqIiPq9BiNHrKzzoW2xdrWZd+wfVFnwbI4kfmEurJ1v5jUKJE4UfrRUvMjfgz6/TmoWb2dj5fWMTvNzCqPCdHdfb9SR8d5yZ06nKNkmW8+auSrv3/KSU9MR2fo+dY2ZmaScNnltDz9FN+OmYow7XTGXHImntSeM0ZuXFBLTGfgelczIVnl+WD8BSsJehaYHZwUgkPs35C+8XJyrjgGc54bDoM1r/4Vi9kC4fgTs/XjlzuNG9u+kpKpbVlZggiaSj6wvqA/h6z4jrotARrXzkNvdWCwuTDY3ejtbsRd4gDUaJz4JiQOoOLjB5HqahCtNlJbTDRsTYPJHcfzyQrWzoZiBKcTc7Bn9yhASLWACO/c8yaORAGry4jRrMdgNqA3GDCYfvwZ15zxl+tw5/Ob1UgShBA6sSPuKrP/IKoKN2NxdiY6rc3lGB0RHIahiKLIv//9bwRBQBAENu7YAECSe/9/Mf0StIQkbDptj/2at8WfAa7U7jNnfymampr5aPFKPg/G2JiUhmSwYk3KQhDg+75u3k0ycdBBI3d7TTz96KNIbURFayNnBw/sT98h3Ss6C7pcYAPfvx4n/4NdtfTN2I6iCUiqHgUd04dKbE0rolUnkqRlIbQFIRvMowlubEGNBOKE5pT+aN8UYTAk4vfGSb7NFX8mhHytiDr9n0J77QCp+QMw7PCjqdyykS8fu5/DLmxhxNF/XDXZ/QFui4dIWEZVld0qLQc0BbshftMcfPAXLH3+r7i8c9rbI5JCohrgpdtPoP6eNUS+ryB8cD8sCfGHtCktiZgKwdqdODK7ajx4MnORI8X4vdU43PEA85Ts4QiiRm3peoZM+GU1TeRwG6kx97wCjsViyLKM1dq1T6C6gbtmb+W13DbT7iA7BzXJ3FYX4/Tjh5LksOD3+Tn/y3mko7HZkcM2m8D7ayo5c2ScseUedRBTGuYxb1Eas295n6MePGu3K1bPXy6l5emnyPPXor7xFNvfe4XgFddx8NETMLld6O12hF1WsmE1/iC+9tb4Odp630KKWkPcfdIg5FA5GaYoG2ZdTiAUIC82i9AOB6LZhVX/Lc7L8khIOAssSehGHoUSljD1yUKLxPB9vRCl1R8XuQsEUYNhWjMqsfadxZiX4mq4r9/3SJf5i6hIogEVPbZoEAx6ai++DFNlB3keBLT6BsMV8VIV3xXWs16J8dP/gN7twhoIoGlajy+cfk1v0+AZBmICdSUm5IgFRTKBtuv1LLd9QEBH/vDfzhIgimH0+o7sven/ub+LG39b/VLWbLiWZBFWtO5gFHS6Bhpa4qvtlMRfVx1+f0VrRMa+F9U6qrfGXZ3pg7u6c372MVv9zF6+hk/qW1icmoliT2Z0oJKbQo1M7N+HoX2Hsqa6jhO31/FKIMLoPZDcwf0KKCndgU7UEQy4sQVyKVvVAD+RUFr47kIC3hAKh2JPHsqxfx1LNBDC9WVchqO614VoUT/GcBFpLRsxmhUExULO4Lg6d/k7dxH471sIWsd8nOOn0rKsGL3dRsAbzwi1u+IWn0jAj8Xh2KeFTPcWB0jNHwBBFDnumpuwexKZ9+rztNbXMfnci/+0wnw/F4m2JJRWDa+3EY+n52rtTSK84NvC+tdHYxONLDV6CeeZ0F6cwqHCzcxuspIWq6OpqYGIGsRNEtX3LiX/vnjJDFtWDjHKCVaWd0tqUrIGAHOpK1uLwWCmpb4Eb8NOTA6o3b7zF38/JRR/WegsPVeMv+eeeE2oa6+9loSEBDRN4x/vLOHVjLaVT26Hr9oejXDvIb0YktphQrZabQyI5fCdQ6HcIWKSNLa3hvGFJZyW+JN8wLmHEWj4nBVF6Sy+8yMm3dGzmJygqpQMP48q2xA8BVGsSz6l1xN3U7FL7H1M1BMxWogYzYwqOJz52aO47qXZPHbpkdTVh6gzKny+vJIEi4m/nzMaxw/Pki/Ohl1C3/oD0Ah1qwCQ+i/E0q9t1Wk1k3B615iGNFUla+U4Jg29gpB+JIy/HDkSRAoFkMIBpEgYec27zBfHI0adZBWuxCQpGIemoRWo5Pz9Qcxpvdlw8S2YijokKM6tqQa7wNRg58eePTERazRCczBEor37lWhq9Q8k5xUx7JbF7dtUVUWRosRiEWKRMHIsRiwaYf68zygv1xg9ZTfpVD8Dmqah00UwGNydtle1bGLp6jMwCQoCGiZBxYKO95qNVDRtYsZPxqmu94IGGRk9B5X+meGLajhNe36m1peXY5AkEn7i+tkd5LJNLFjwBj/YJlBgd7Cu2cdK0UhRUiqqwcUAfZAb/fWcPmYkmVM7p/AfnJWOa2MpmnXPjOvEc85n1rsrKF7sw6XGCbPqs/PMjM8QRQUEPWgiimIDjAgCJGbZyB6QFx/g6x0AZF/wWHxfKYR0XwaZSi7Jx3Zcu76XP4QRbvIffg3BYEJvsGJwpuD919OINjvB1rjYo61N8yvi92PeQybW/oIDpOYPgiCKTDn/UpzJqcx//QXCfh+HXXQFpm5W7v9rSHQkA1DXXLVbUnNT2hQKW4oIKlGCSoxwO+nTmFMSRsNEarSeeR++zfR7/k7hc7NwVTppKSwncWAelpRsmnRFxGq6L4mRmhtXq/38nmeBZ3dpEbD/iue8HI67LnTmnkmN0+nE5/Mx86OPcH3yPg7Jxav/vK29/cZgmEkD09jR0MR1mDliSzUXL1mOz2rnkOQEThk6hFdzQBP1DPZphAV4yhDk1e83smbSEFxtD8zR159E8N/vs7E2GctjXzD6uhM7zSPa4mfrJ8vZtLQRn2s0mqBje6Odmz95g6VzlhFqbCbmC6AG/KiBIFogQMmOGpzReLzKvB1xN9KINCdNDV6+rIlnXwg3LeSCpLhCavC811FjrWixAJoUwjbwAqSZn2HZeBONr5agiH4EnQA6AUEvIhhEBKMO0aRDMOkQzXqEiAuPJGEZdxmmQ07t9B0ioQDmnY+gjByNI2Uc6oWzCNz7BAOndc7osYwYDWvmEWlqxdxmnUhVBN4+vrOb0ZEUN7E3NDR1S2o0TUMMgOrsHIQtiiKiyYLBZMHmiGv1+P317Kjx03uAiPFX1hP7EbGYD1FUMBo7dFBqfdtZuvoMnGKMGv0gzMYENFMKRwy+lR1fP8Ey88f4oz4cpg6yXFgXJFHTsBj3wpzxJ0RA0shx7fm7NbV4ccnybi2ZoUCAraVlLN+6gWjLcsqcKbyX0yFGmmIVGBXwMj3UyKEDC+h76PAex9I0jZiow74XsXXfvrKO0pVBBJ3G6FPSsRolCpftQI6qSDHwNcWJhcHUzHFXjiE5LxXDLv/POuM43NGNhDeuQu90Y3C4Cfc5CFfJajQ5gqCPBygLjTHMx4/Hlt6/fV9f0XLECJgL+lLXGtdtcnjiluBoKITxT/KuOkBq/mCMPOYEDCYT819/kZbqKs6666E/hUnv1yDVFXf11LZUMoCehcjOOvqpTn+/vOhlHit9jLlnfECqK06GHjrrBUzWQ9Hp9RRcMIXy/y6i5YO1JN6RhyiKyA4fNEa7Gx6bM5XRZ4whEvTj8KTiSMzAnZRDQkpvLI5fzmqksp0AaP7ujxuWw1x40YV88PY7JL33PhnV1TSnSTyzo4TDzjgWt70jFmdMr3wG7tzJjHXbecUdDzL9qBUWfjObaWIOn9gkNjkFCgIax4T0zLTK/HtxMY8fOaB9jEl3nE74b++wYmsa1jfmMuj8eM2t6iWb+eqVUiS9jQRF4rgzPPzQbIEFtRSWejnkmAndzv/qF2bx3Y4IByepVPvjLo/7bh4PwBMvLOeR0kZMgCgHqbOPI7X3yV3GkNv0YHR5eYiygBZT0GIqmqSihmU0vwSqFv8AAiqaSYe6fTXalFM6WTUDvhbMgN7ioteIgWwR9TSs3wQ/ITWugwbT+jK8c8Ep6AdP5QiLgM1s5vHqdYw9eAxj+scf6NbEOKkJNjZCfldhNkEQ0CwiFm3PmljLlr+Doug58ojzd9tPjim8/o8lDJyYwZgT8hF3I+0fCMQlB8zm+OKgOVTJ98unYRZkeg95k6NSxnfqb2iLN9JkBXbhYcU+lTxL12zC/xUEJfA1VlNfvx23Ox2jsftFhkGARqOJO75diLepCQVo1QS8okirqKfZbKHR4YrHtKQMiH/asHNcAd7WECnJQ/da40aSJCSdHod+z6/b3CEeSle2gEFh+OQ+GE0GBk+JV6HXVI1nrpwPwIX3n4zR3HU8DR0mIYDp4446ez9eAi1l60noPQY1GkGMgs7pbu+z+eIpaMWN6AB0Fmpr4nFHHz58JlLAQKDahj33z+G2PEBq9gEGH3oEZRvWUrJmBZqmIgh/7oree0JmYlx8rNa3+wyTn8LattINRAKkulKJhMMIqorN5QbA6LARzZSxVe3y8EqIQXPPl/WkU2/rse2XQm5uQgMiTTI7vliMtXQ10S2biVVUsC3XwKP9Sjn3yJv4y+WXUbngMaz5UQa+sKnHh+LQvDxmpaezYOs2Du3Xh0vnLOITWypbx/am99oqjuuTQv+0+IrtrC838Lkpws2tYTJdcXIkiiJH3j+dL659l4WLU7AkLCPtoAK+e3kzJuCUK/qTNDwuRJjgj/HKghoWzi1jcN/uA4WLG8NkWiEQU6iMGLnh5Tk8dFFcL6q8OQyAWRUwC34UY/f1ajRvE6pmIeWKvVPXVSMy0edOwlLzDOqdrxNNOQnT5U8h6HSE2nRsDDY3VVGFpQNHkbx+IeWlh+J2p2F1eNAbjCSOHkCLAI5wjJqaEgr0MmgS8hofX29ez5j747E6zqREfECwsedSHiSZUGrq9jjvoqKdJCXZSEravRZRJCgRCUis+baMgoNSSMrq2bTf2LgAAJ0ugj/SyKwlx2EXIvQe+Bx9fkJoAJbVLCVJs+G0dRRClRWVasXKxAypS//9DZqm4QuHaPQ10ehvocnfSnMgQEswREsohjccozWs4gtr+KIi/qieQMxICDsmLcYzz7yN3e7nyitvwWpN7jK+NTUNGhv4PByjJiOf9JYmMiMhXKpCDhKJCuREVfokJZCV7uChTWsoxcJB+jBm83DSzD8vWDYUjSLr9DgNe37ODzw4F6+3lbWfNLJhaTEHTekgVIIYX/zaPaZuCQ1A0rXv491RhBJsRQm0ogS9tFQvQ3V/RYoxvjBsKoyngQef+ZZZdZmopdvJWxK/tqN9VOp4FhkbBms60RYTRodEyrBGalJG/azvva9wgNTsA6z4/COKli7isIuv2G3g7P8K0j1ZoEG9f+9F7p6a9xQfl30MIgSicfdOc12cFNkTdqlaXasQ1ndkruiSDVDhRFXV361+TbA1yI6thRQuraauyAaMhimjYSlAjKEbF5PUFC/Cmb8DnlgANQtfRnjnTJzmILWL3TRedCEDXn+jx2PYTSaOHx53kzgMejRR5KMNG7hxYufioveP7c2kNdu4YXEx7x/X4VbRGfQc/+DpfHLdx8z+XEb8tA5NtHHChbkkDS9o7+d0GAklGAhs8/Y4l+ogHJxhpFeynS1r/HyyPcb6+2aS6dCx0CsDAkYgzVAEgSJqFr+DP6pisLlITE7FYEtA27kaURdGWr8Uw7A918USzXpMV71IbMk01K1zMde8RmzhkRgPnUYkEA/MNjs8HL9oK41/vY5BJUU8dexZ/JjULekgZhCwaWBMNnDN6x1ZVw++8BzGJQva/05ITsIHRJp71qoRs5JQyncvS+D1ltHU6GTCXmjT2BPMHH7hAKJhGU9Gz25LALktm1dvcvDl4qNxESS94AEGZnQtZ1DXWMkmXRnH2yZ32r5lRw2SoGd4vnuPc/stISsyTf5mGn3NNPi9NPn9NAeCNAcjeEMxvGEZb1ijNSLii+rxR40EYmYUreurSScYsBtk7EYRu0nFadbIdiu4LOC2gCC1MDrFjt3kZu7cQj744GHOP/+eLs+BIy6/jJV3381xapg7DhmMfg8WlGezC3bbvieobc94Sd47naPRUway+vN3WPzyLHxl4znsgo6yL54MG966ENtX17Hko2KMZj3uVCsNFX4Ov3AAkl1jRZMHKeJEH8nE1xRBF20iJ8VM0aazMW71Yw+ESMOIGIyQ/uZzeG1uWnPtVJ2VSSRrCDZLBh5nDgMPzyUrKR+b2cbUhxcwOfXPEYt1gNT8gZBiUZZ99C4rPv+IsaeexYijjt/XU/pDYNSbsEh6GsL1e+4M/Pfd//JB7AMcmoNMLZNsT9wN01xfR2VymAHEhfwaNpbg0jz48jpIjSktAVk2EWmqxZr860poqKpMdfVmPJ5crFY3G5at5/OvvkUvOXC29ge6rtiSqGXAXddD8RYaHn64fXv61gaKRowA3ABoy1cSCwQw2nt+oamqyuJvv6Zg9RoyBo3jNncyiYXFjMtMo6iphcl52eQk27hUZ+EpY4SbPl7Ng6d2rKYMNjMn3ns8n9/6FWaLxpTrDsVdkNnlONk5DnzrW7jv+vloTgOarDLj5oNJcJlRFBW/oiMrwcqtZ0zi8GHlXPPOakp9BmoDUUBPmqIi7FKiMv27GXQRbW/j7urH17P9/XtQRBVV1FB0GpoONL2ApgcMIkk1RhrdYYbfciTGSSei9B4KL76GJoVpbWlE9/V1AFgcCQSFAGgaW/Lzqbj9YsxRGSnoRwkGUGNRFpeuZmNuiJN2mUpWXi+q535FeUMDOcnJWBx2JJ2OmLdnUmPq25vIkkpURULUdR+3sXbdt2iawIi9rJ3Ub2zP0va7QhTj/XZU/JMEZNz5tzMy95Ru+9742QwEQeDiyVd32r5i804Axgz65SWWNU0j7A/SWNtEXU0NhcFSWlDxhmS8YYXWsIY3IuCLiPiiBgIxEyHJjMZPFxcGLHoFu1HBaVRwmlVSbDIFSSpuq0qCTcNjteCx20hyOEh0uEl2JuG0uhDFvXtlSdLrLFiwgw8/fIAzzvh7Jxe/0WAgmJSGVl+zR0LzW8Bji1ucP2n0c/Ne9DcY9SRm11GzdjMb59Zz2AUnocoqwboQalhGVTRmv/ijKnCU5po4lX/rwbt5c8Is/FvvBQSGR3UcFjZQ0qcPs8M3IhqMmHU2XMlOkl6wkeHOIjM1EafJgFUncozVjLUHN2i9L0qK888hHnuA1PxBiIaCvP3PG/E11DH21LMYf/ruK2D/r8GmmmiKNO9V35WNK8EJqfpUnAYnd82+CwAlHGHe6HpWVz7B0eo57f2VXWJoTClJyPiJNPw8UhMK1VFTs4qGxrUE/EVI8k6WL4v7pQ0GicxMgZ079aAHVYzh6RWm90EZ9BqYz3t3rG5/qR/7j8Nx5KSwdcYluz2eACy98TomP/9Sp+2qqrJp1QoKN2zAH/BT4fUjqgrXNO7gloQUZtQEEKuKUEUdN5SWU1Zdz7eeVLBY2doksfn17+hz8jiMTiuCIGBJcjH9xXO6n0QbJh2ay1frW3CENVo1CVdE47PPt3PR+UOoavKhIpLliRO40f1yWPqfrnEnsiQTCJQhRBuRIyGa6ypRIj7MRiNi41bkWAShqpCwbjxBgwAxASQNZBBkDUHS0EUERCUe85HktaDICjq9jrpVs8kA6lJT2TbrFQ5XSikW88hOy0Yq3EqSGqFRZ0GbfCKTMjoX3Fv1wY2sDsxBkmPtsSaD+hRQDcxfvpyTD5uK3WRE1htQYj27ZqwDRhKLfY9/+wpc/buPPdq6tRSPRyMx8dcVTPwp8vOnsLXMgMsoYci+kXG9u4/X2bRzNesNO/mL6zTy0/t2aiuuasSiyGTndJDaQLOX6tJKmpt8NDX7afGFaPGHaQlJeCMy3piGVxZp1XT4RCM+vZloJ9VtF6KgYDdEcJiiOE0STrNGvkfFbZFx20QSrCIeu5Uku4Mkh4skp4ckpweToec6Vr8Fpky5gHD4QZYvD7JkyVtM+IlcQ1ZBAU3LFrOjqZn8xJ4LUf4WeHHdlvgxdd3HTqqqSrgliK+qiUBtK9GmIE2bVwOgyCKvXjWfiKyhdrs3iFKQ3ju/odiztG1L/DiXnTGQo0ZncfL6Elb68sg0GQgqKiFFJaZp0BSIf9pwcoqb5wbldRk/HFPwR2VSHAdIzQHsgppthbRUV3LG7feSPfCXibz9meHCRrPk3au+l0+6nA82f4BP9lEVqWJbeBsBXcfN12KJUH7LAmJEsIoODBkdFhMpGLfiGGzdB7VpmkZdXRFbCx8nFguiKrUYjKUIQjxAVVF0RKOJyFLHw1+SDOzc2TFGTn4WZ110HAC1FY3thObgfn4cOSlItR1uNmPv3sRKSkg491xEixnBbEGf6GHJe29S0lTNqPIybNk5lGxcz9KF31PS2NVacO7ZZ9Gr/0DKlqzmfV+UE616XlN0PCLYIDOfy+rKOD2tNwvXhFiAyIKly0nVqph44QjSxg1G07R4Bk8P7riNcysA0BlE/vHYFO66+Xt86+PxJaW1cSKak7x7eXS9QY89wc2PlihX3tDd9t8ddi7eiv6rRuq3VpI+JJcX/VXcDuR8ego/0oXDx79AZHEhmHT00Sw0AhdubSFp6xeYRZX7BwzisLQChmSO5P3i2WwsXcXIvvH4k0G5OXxlNNP45nO89OZzaAgcIUtQW9XjnFzDJuPlUXwbf+iW1GzcNIv6OguTJ++d9eXn4MtNs7i/Xs/5aadyTd8ru+2jKgq3vHclhiSBcc4prPzqe4ItXoJeLyGfj/f8vUCn5+g75hKUVYKqQgs/FaozYlIEnEoEpybiFmTcRsgzargtCgk2GY9NRHnzNZyxIAMfvIqCiSfst4kOY8aczfLlL6IowS5t08cdzJPLl/D6/EXccdpJ3ez92+HDmkbSZZVbnRqLXv0Qu+QhuTRODn2GCBbJgKHNlGkBjKjk2gaxPbac9NQJpGc5sblNOFKsONNtbFm4k161UcoOTqLfmEwysl0EvJMZpteYpmqsGxXmqIGpiKKIomlsCoT5d+8MrszpcB/F1Di5CbSRnBPWbG8vUfNT1PvjddFSnT+/zMu+wAFS8wdBb4qz3PVzZv6/JDVOvYPG2N5Zao4bdhzHDTuu0zZVVXl37mvcV/0oyVIC4T4xZJ9ENNpI7uEdwZL+hlZMuJiz6DpOyvqUqqr11NQso7V1E7FYCTp9NUZjuG1MBwajnx/v5Zzs18nMHI7Vamfu3LnAIs455xw+/vhtIm31DvV6PVOndmQWeHdZ6SjR+Ep/5/Sz2rfFSkoASPvXPzt9n7ViPi+taeTDZ77nGN1WYgYTqCq0EY8UswGH00FybiuFO86lpul0bp9wK7e37W/+fjnPqSZEVeHO6SchR6KslzbRakhhaFI1hbUuPn69HvOrXxDDhF6NMmGqm4FnTepyvrW2jKMxJ8ZdE1kjkwguqGPnzlYqG+PxKznJ7t3+z35LZIzsRc1X9Xg3VpE+JJfEvDM5zDWE/FgjSWqAkGhlcGsIu99MQKdjcEEiTZEdNAkCkmahgWQ+qSzksLQCRvedyImfX8XSpREK0z5Gb9BhMOnIHXwogmM1qiDxf+yddZhc1f3/X1fmjtu6J5ts3JUESAJBQnAr0gIFSoFS+m1pgUKBAsVpgVJaoLi7FQgQAnF338husu4yrld+f8wmm83uJiFQpD/ezzPP7tx77rkyM+e8z0fen6QqE0nuIqNuS6/XZM0diO4UiG7b1G3f+g0f8/FHS0lPTzJ16uU9HH34aAu38dCmh8gR+nLt8Xf12u7hV++jMjfCMWszWDjnr/vskRAkG4XZDqrNWTgUmRyHjN1Q8S77gGKbzPjrriA9y0tGdhpWy4EFAyuevZlo0zbSHr+Z7CmnH7Dtdwld15n9+XMADB3WXQsp2+VEGTKcxNYN7Gw6igFZ3UtQHCrawiF2NbVQ1tpOhT9ITTRGXVKjEZE2k4V2u5t+lduZ/8rLHJtzIekWeY8xhUSGiOqVMafbsGW7cOWn4ch000ee1uv5GmJx9I8rGLC6lU0VAfKun4TD42KPIzt3uIetoSiPVzXRmlSJ6jojndYu4pKKKKKIIp4OT2qmIpPZiwp5U0dW54+Wmh/RBQVDhnPU+Rez9O1XSVz1GxTLf9f8+n2DbhKoltr5vOJzphdNRz5E3/geiKJIIhlH1mXmXDYPSeo5wFpyFANtpDv8fPHlcGQ5RTR0w44kF2KxHE+adxQFBUeTnj6AL+emslSSyckMGNBZwqK0tBRRFCkoKNhLaHJycrj66qu7nM8wDAx0BETCgdS5TAX5qPtYa6R9A5uBhKrzzNqUDkQ16WgmM1PGj2Xc0Ueys+wjGho+xmxOBRpLkkoyaSMUfpH29p/i9aYyyW6fOpG2x57E2tZCYtJgFLudi569YO85JgQiLH3gPzTXxcnra6W8SmTJF+0Un+BHS6gkfAHShhbTvHwTvrJawEpaeuqZzjixmNcWNDBnVjm+7NQqtyj7v2ui3xeKzUzAGkerTA2mF/Wxs7N6J2WO/mxS+tMsOTlrUYL+jSly+hawsyAjNVF0TBYFgdeZ/eXvSBgCeYGnAPA1ihiGCIZI5uiNpA9asPeckWEghLYQb69D3dHKiidfJVKzE00QQJJAkimMm9i2tIGHn30Wk6gR88UZQg0Bv5WMjCQ///n1SD3E2+i6jp7UkM1fXR/m+o+vJ06cB45/oFdL29NfvMJL+lsMCg3goun/hyPNgzszDXdWGg6PHUEU+P1+x7Qu20DT858DMGTCQ9077QG6phJ69kOEo3LInn7glPXvGl98+STbt2l4vTEy0nuOI7pq5ok8vHM7T73zHvdffQVSL8/XMAwqwz5Wt5axtb2Snb5yaoMV+CN1xOO1CEac9uw7Uc39EHDgFATSiJKNxnA9SnY0ztAMO6NvuhN1XRPiDhHLxflkDOu3p4LLV8LYo4vg6CJW3LIQw9TzNU9ftR1IkRWA1+rbOHd9aoHllSVskrj3ZZckqqIJMnopdNoYSA2AWc4fLTU/Yj+UTJjEkjdfpqFsB0XDe67l8b+KWqEFBPjDgj8AIIsyDpMDr8VLrj0Xr8WLSTBhkkyYRBNmyYxZMmMSTSiSgiIpzGmbh82w9EpoAOzpXuK0EWsbhsV7FJmZ4ygomIzL1T1Atrm5sw6UIKzZ+7+u67S2tpKdnc2qVan0x/POO4+hQ4d262PImGLmGw8iajaO/uOdAPR95RUS1dVEVq3CMWUKcmbXtFJFFin9y0kE/QGe+MfD9CnYhKYsZPmKmzCZ4phkL7puRZJGUlh4AVmZI1mx8gRWrLyFk2a8AsDOsjkcV/gJysByFn/2EfaICbOURcSoZuCoO8kYfgrT7+m0GHlfnseCJQbP3bIKwTAwRAnY3bE3RbBXPzOfPo//jNw0G5FsM/pWH9WiikVQsR7GhPy1kG/BWaaiJlXcBUU8vP0pkrlnY7kqNQG/+clriF6RpvYszjBZGdg3h7a4yq6WGhyJB8kTdKLuU0mqYew5m5FMLi6+5VJ0Xae2cjHl21OFAieMWYCmRvFXraZcv5Utfz4N65woTsVGY2Y/3B5bKv1I06jNLWZrfhE7WyTK21NKqx5zkOH5CkePv4CWcj9VgTpiwShBX4Cm5mZa2lpoElPWrmnHn0lmXiZuh400lx37Qawi13x6Datiqzg361yGFfQs6f/Zynn8s/pvTGAaT179CKZDDHx1jx1CvWhCtRy69oh/zRdIbTqenx5eOZFvE2vWVFFQCJdfdnevbbIddiacdDKbPnyXa197gKFjhhLWDOoiLdSHm2mK1BGI1pKM1yPonRZZQ3JhsRSR5ijBauvD7rZ5/CK4m/OGHUH/7EzeeXsWdbvKMVmsmG12LE4XulmhtMaHzSXhAWpXVJFMy8RuN2GzKchfoVjqHth08PeiUtzHolAZS9CcSGVcLWgLIgK/6ZONQxKJdLidwppORNc5McPF8ek9u5ibAnEUWcRl/WHQhR/GVf4PwNB1Nn7xGQBq8uDFHf/XcFbmTJ5ufJ2rhlzBrnAltaFamqPN1IXq2O3fffAOOmDHxJeflyFbZBSrjNkiY5VE8hFQzCasFitxoG/2Lxk07WCaKAbxuBuz2Y+mdaZtlpaWYhgG4XCYRYsWIQgCgwcP7r0XEeRkO2Z3ZyaTUliIUth7hWarImHN9HL0oFzIS9UVEPVjGTTwF+TnT+oSp5BMxjD0UcimZVRXr6SwcCI7d/4Nh7scI2nG8LYS8kKIBsSwwPZNt5I2dGaXlf3wi48lZ9h2KpfsJBmOsaYiZXkZ39/PsMtOYPlDH1HW7EFLqkgmmdPPH8zcf2zAsVkgy/Htl/PwjsyDsnpq1++iz4SBaNbBiO0b9u5PqAo2S4cJbW0p6eJccm020uINWL1r8RS+zLiSlFvyk62vUb0xlYGyYdkrtMXvhA4+EQmFyCkcjDdzABVv3ErCESDrlMu4Uh7BCX0y+fM1k7pc12nAbcCjL87jkdIICiq76xLs/vCNLu0kQ8Rj2PEadkyaRK3UxoIvPujSRjMElOY6LMEWZMWMaDLRjo3P7UdQp3hwDl4EQKPu4qbPn8ZtduG22Emzush2eEkGAty26Sb6MJB/Xfy3QyY0ALJZIT76WISKrgVedVXj3V+/TkyVMYkaJtnAJIOiCETL16H2GUhazWYqPn4Ii93d8fJic6Zhsadjd+Ugm757N4VZUTF0G2Vlu2hqaqK1tRWfz0cwGCQSiZBIJNA0LeWSQSCzLMpnvqeoclZhICLKXixKBtn2IvJyjqafq4hhacVMzOhHvs1L7Re38u6Wl9iSPoTdwMyhYxhWmFo4Vc56DYsWJSzbSGoxokZniK9HyWJY/mWk75DQdqwnAASABAZxOuLnRdBEAV0USMoCSZOIapYwFBHRnFLelswSAwyBJnvPn/nTw/vyzPon8CdjjMg9luuHdNczOlQ0BeNkOc3f29ip/fEjqfmW0N5Qx7rPPmLEcTPoO+rQBMj+l1DgLYJGOM57NNdO7KyJ09Swgd9/cgkbJJ0MTUcTBAICKbN/DxgRDzBobncRv/0LI1gXhdi9aD66oGM2TPiVKANunoZi7RxwMzMHcfLMtYRCzShKZ7Bxeno6drudUEeRw5ycnANq3oTc6TSGVR772+vYFAmrScKqyNitCjanDYfbQVp+Nnl985D3S5k89qdXM29+yvpgbS2lef69ZJ3xPCZHOi0bP2JTzR0YVj8mBWKxTAxDp3zXPCyWlCm5X+atiM2VZI+9AEGUqZhzF7XZX1K78J8UHvN/Xc6VMXYQGWNT2UGu1xfiybaTNz0lwufMdqG3ygiaBiaZUUMy8F0yiMUvb+M8v43HfjMLi1fAm2slr18aRQNzyC3KOKDV7Osgd3Rfqt6rwbexjj4TBqJnjkepehpDTSLIJgKJNCy0EBF0bIEM0te8xEDrIto8JtZ53eQondeV0zed3StMtLfUY7GlQxwsnEx62slk5aeyhCItlWhZYFhFCu77E+03fYLH2rslxa6kIxHhjhv/SMQforW6CcVixuq2Y3PbMbtszHl0Fe62OBPuOJqtVXW0+EKEwlFC0RiRjldzxWvYEnFcxSUkYzGEuiamhOfzZv7pCLECDKWJhS0vI4g9Z2al60U8d/6TWJSvTiSMUBBbWwWrT78cbHbkvAL6X3cZTUIeZvw4lRBJVSAUFVEjMm0uG5pZo+rT7WDs6LFPi8fgmic//tYmwCVLPiccqUFN+vH5/QSDUcIhnVDIQiAg8tprr3VpL8syZrMZt9uNzWbDbrdjt9v5eMfHjGsZx09GX8xFR/4E+SD6YR+X/YenPW5MyVqsCZk+1k4Xs6wnsE09hz/8+jIMwyAWjhCOxQmGwvgDIRrbdGTRSTyaJBFXUWMaakJDi6toCR0jqWEkdQxVR04amGMqzlASiw6KARYDLB1+Vk9+z9aVkU4bZyQfB6BASgKHRmpaQnHqfTHMJhGLLGE2idS0R34wQcLwI6n51iB2lJPvO3LM/xeCe/ujT3oqdqWyuZwhA1JaKslQE5fOupBqWeKXzsGk2bN5tfpL2k0ysmFwe8FJHDvmKqKRViJxPxWf/om8mEbOPUcRiSYJhhNEoipla+oZsSqVrWOflEugzUdISaBjYCR1TNt13AlrrwVEHY6u7qGcnBxuuOEGAPx+P3b7gRVEmxUHtZKDNxr3T3nVgVDHqwGTvoasZIh8MUGBVaDQa6Vvrods5U9EHfcSy2wgRgNLFxyNGBdIehN7PEMAiGKM0m2X7o0TAtjtuw1M0DJrDhFLA8msOGIQpPQDx2ztHzAcaAxhSQgI+9SRmTa5gHEj0ln6ySaaKgyCzUkaNqo0bmhlHa0YggaWBGaXwbgT+zP2qCH7n+awISkyIZcKNal7FYdMQaz6B8nS9cjDxwOgajauf/w4Hv/VPFZELiHr909Rt+0PoK0kw92pjpzXvz9QRW3ZdvoNO4raFSKKaRiDR88EUjETO5Y9DHYY9vP3SCZUQhh4Hb2TmsatLbgQKN3SQnqOg35HdL93Ia4Rk0UkWWREv56jJ+789HWSQ6bwizv+CMDcBStY9/hd3DlE5+c//3Rvu4Sq0hIJ0BQO0BYJcNUrCxHkIK9ffSUZrsOLd3Kffir+D3SESJAq+lIXmcCSe1KxXMednUfxKUd0af/0b9aSjPfj6if/TiIWIBJsIRZuJRpsJRpuZ/uyBVSsrKO9sYy0nK8nWHeomDNnKQCiqGK1JrHbISPTRt++DgQhi9zcQWRlZZGbm4vV2vtv4oTkCdz5rzvZOXcTa7KLOWLAEb22BQhnDoDQTixRmdE7PcyrfgWbexaSoiAbGraOGmKCIGB12LE67GRkfHNxaaqqk0yoFNh6/44OGnQXra3z6dPn6l7b7I/LX1jFxhp/t+2njvzms/r+W/iR1HxL8GTnkFXcn50rlzFw0tEHP+Ag0HWdVR8toGLDJs668SoUy3dv8j0Q+uWmLAQ1vqq92z585USqrSmC93RwG3KglOMVL5c6+vK0byNz6hZz5vF/w52eGiD9pn8SNYEsibgcZlyO1D0P6OuldN1iqiZkMOOMErz7nXvjnbMxFIGCw4gLcbsPHnMgyCKDctN47VdnoesG0aRKJBwnHIoQ8QUI+YI01zVRVR+kqi1BTVhnfUjm05iJaLMK5GCRHkSJaUzzLmXG6C9oa8hA2zoUWXSSN/kdABQl2HlSHWSfGTUtFUzrL6rE2ZBPsXQueTN/iYhE00MP4TzpJKzDeo7H2BeJuIYgmYGuK2yHw8qJ53WqGOuaTm1FEzVlzTRV+/A1QrBaYOnLdWycV0nBoDSO/8lEls3ZyNqPazHZBRxpJrw5drKLvBT0zyIz17NX8v1AMPV1kLt5EaE5AUyBlHCj4WtCEARssh+zFqRlbSrmSRJUXN5MdCFls1Mcffb2k5VfjCjvpKkyyPBJHrRIMT5WAlejaxqb5vyeVvvH9LVfh6vPMJoaU/ETXmfvE0a1CVxJgbT3dmEA/pvG4/akJk1d12mqD2GNasQsvS9g2iMhpGQIyz4CjNOnHcGi94cSmfMOyZ+dudelpMgyea408joIzBi5jdpwnNz0nktbHAoGXHE2XJES8at8cCXsCjG22AdA4XHd09YDTSnCI4oiFpsHi80DdJbFMIhTsfI9kvFvx71uGKmsvdGj7Zx++h++loK4xWThxitu5IF/PcD7b75P2hVpDDgAMbt4yl302fAcnyxeTf86Bw3Cjr3XA2Dh0NSDDxeyLCLLB47JKsj/KQX5X00Prc4X46JJRZw1Jp94Uieu6sSSGqOLPF/jar9d/EhqvkXklgyiemv3lNCvivVzlrP4jZeJhyoBeOP2EJc88Kev3e9/Ex6bF5MqUhfo1ALJHnAKORXvISDw6FH3kpUxhPSMFPn58sWJmAWZ3bv/ya7dj7Bp48/x+cYxo7iyW9/JpI5TNZB6mEBCrQE8UQuhIf890icY2l5lUlEUsJtN2M0mMtMcUNS7tLiu6zTXNLJ7exUVVY1UNYSp8g/j6S8nMMqcxZWkTL6lZU1IBUsxLKmBUm4zMem4BSy+71Y4aS4A40s+xj09ZS2I79pF9S+vJFlbS+vTzzC4dOtB3QEDxmRQsURm6UMfc9QNp/XaTpRECvvnUNg/Z++2f12duoZwjcL2mhDH/wR2b27ESMgYtgRtVTptZQa7iAC1GIKGaFExuwScGWbSc53k9EmjaEAOTk9nJeDskW68O+6GJan3hiEiDUxVWp9xQRazXjXx1tMpAjL2KAtNpX+jWd0GwILF4xBFc8dLQXFfSFN16vkp4jASrCbe1MrqJecTc+8mX76c/kdcC0BbeyqrynsAk3upRaA5ZrClwMqwqiirH1uLpojIcY2siI4HgWJgS64ZXddZu2sb8+q3sLGplKpQOT61Gl1q5hK9iIila/mFiSefxtZnH2Dpig1MO6rnejuDMhysDIbZuqudof32p/GHAVFCEGDyH3tWKt4LoXfiEA2lJBtsX6M47FdBIpEi9JJs+kZKongdXq6+7Gr+/fS/eebFZ7j52pvx2D09ts3MGsY5JzxE5aZrCdt3c9tzHwOwcvVGFv31T2QWH7j21/cRhmHgiyQYlONiXJ9vL9vxm8aPpOZbQmtNFZvnfY4zvXuBtUPFtqUbmffS80Tad2Ky5HDkBdfhb2xmy7xX+OyJ1znpVxcevJPvCIIg4FGtVEc6Sc3Rx93DHO7ho/KPuHf7W9ir7TgVJ3aTnWVEQY/y5s7+ZMn/wJ6vYUlPskZfzEf79b1+UwO5gNmuwOb3YNWzfO69md8s9xMHpiDz2JEHt1Yc9r0Z+mHJrYuiSHZRLtlFuewJRw0F4rTeuwKpw2IS0xIM2XU57Lqcy9VWVDXARzefRMPyVayvrEd5tT9aQmJz7A/0y8wju7g/GRU1JGs7n3OypuaAQcsAAy8+kcr1L7FhZy65H6+g36kHNr/vi6Ez3TTs9qHGNfxVBu3NAeIhDWQ4/VdHkFuUQSwap2ZXI3W7W2ipC+BvVon6NCLb4jRvMdhGAKjAkFQkm4bVI+HOsDAiOgmvXIs2/GzSp16OlJ1Sic47+iguGdZG+45ydFEhZ8w0fBWvQUdNSkXJQNMiaFoEVQ1gcdcQbkkRZpu9H7rxIYs2TkJw65SIf6HP1E7V5XZfKgDZ6+mZ1Jz39loqgzHMVpmhM/uz9a1tSAkdc1QlIosscfhw1e9E9lVhX1XJ9ke3YxXgreskYrITh1BIf/sE+sleRGMxfb1d3ZvHHTOJVS+7mffGq91ITZs/xjWPr2C5L0SxyUT/wgOLIh4qYmEV8SAZOLLkIC9vFBWfriTeFECyKZT8pNONGfF3kBrXN0CyDgF7iHpz08ELjR4q+mb15YyfnMHHb3zMA888wO3X3I7F1Du5jYdCGPsspgLBlASC1/PDqGi9L4JxFVU38PaSUfVDwY+k5ltC2arlaKrKCVdey6LXXySjoIghU4495ONbapqY9egtiLKT8af/iinnn4Qop35MTRW72DL/dXIH9GPU8Yc+GX3bKJJyqUx2V229Z/k9hNXuqp8Agh6lXugHHdpYaXX7q6BCpEMcasyYXHj6DvBV4i9/gDgpX/IiVCIWU4fW7TcLwzBQ9ARrqvcPVT482BwmtouQrcPuDAVbm4FFh4Chc4w1zO7a9Tz5f28BYNUMxo08CUlTWb50PmXN9exoTenjKMOLUQXoZ7IxKL97OntPmH7PBbT85h3mvh8mvWQ37sHFh3TcsWekJt5ZLy/FvzvKq7etQkBBAN67dyOyN8a4k/oyftpQSoZ1LyHgbw9SXdZIfUUrrfVBQq0q4ZYkoRqoM1KxJiyAwaX/4bi/dAaZm71p5BzRuaJMK7mYrB2PkSDCuOlzu5xjYdu7bJrjJBaNUlGRIKMPGBhUbTqd437btYxEuz/1fUrzdo3B0HSdKU8vpW53KuYgnGfli1iUxZO8bI3EqDc0YorAJ3/4M9Z4nCZnJv6CYlrIJqO2kcenvsC4gWP3WhWWLfyIpSymZd5qFvI8sqIgmRSc6RlkjRhHeM1c5i5aRXHfQu55bT6aDht8CmHMXD00n/87bxjmQ6j8fCiIRxIIRoD1c5bTVteIv6mJUGsLkUAr8bAPNe7jpLyLcMnpsCCOTMrymTw1jqkj+D4SDCCZDaRvoZ4SgKKY8XqjtLQYvPvug+Tm5jNp0vmHXB+qN0waOImWk1pY+clK7n/hfu745R29tlXDUbB2kgC/LzUOVO6uAkHE43aS7nXjctp66+J7A184Fb+WdoA4nR8CfiQ13xIUqxVJlpn/0jM0V6ZSmN3ZueQN7D1VeF+k5WVg9w4g4q9h2LQJewkNwMnXXsFL169l7nN/Z8T0V/9r1am/LgZ7BrE+UE4sEcWidE4YV426iofXPNytvYFAERUETAOx1lVi97Vy4dw47FfKKBFJogpgs8pw6Sw++tdtvJsYxhV9Mpjb0sCusMyRf1uMXUySazPol2bh59MGc9SwQ5u0D4T1ny3HuWsTo/XNhMLn47B/PVFFURQZ8qdJlN67nLyWOOUZCtLkfEYckc+fZJE7fr0WwuCUFC5/6fW9StUjr7wGyaxQ+dlntO/czvwVKWG5Mi3Gmr//jQm/P3gpPcmicPKtx/PW3Sv49MGF/OSpIiT50CfNUy4+kqbpbbz90DKIdD4Htd3CitcbGD+tu84PgNvrxD3ByfAJJV22a5pGU10rVTvqWf12K4bsPOg16CSRhe6uxuw+eaxSqvjr3Y+hySEGcgqRlkIErXtB0fYOkuzdj9T8a1sddbv9ePu6qC+yglXm5oYm0Azshk6RKDNI07DG49T8/kZOuPIyAL7815/gsfcZ039kl99mWIsAkAyGWfXhuz3ez3MvfcDi9CORDBveRDsISa4f7eWXl4w+6LP4Kgg2/odkdBtf7ilFJpiRFRdmmxd3TjHOtAwcbV6SJDB15MOHdX+X2KhYMITJ+u2m/Q4enMO2bTXs2NnCpk0RNmy4BY/XjiSKTJp0MkVFh5dpeurEU2loa6BmeQ0vzHmBS0+4tMd2RiSO7O38Dpk6Au3LX/sH5fu0O+r6e5k04fBLh3wbaIukYqE8P5KaH3Eo6D/+CJa98zrNlbsZd+pZVG/eyNzn/83P7nmo16ycfSGKIufeehMv3XAt79zzAFf+668konE+e+JVyld/ChiUTDjxe0toAMYUTuDVbbNYt3MZk4dN37v9suGX0RprpTXaSr49n9L2UpbVLSOpJwm1zmKkkuDBtUcBLlo2d4/M1yIqIZOQundPIVOueYJ7HpxPfU07L105lYZokDVl9Wypbae8JcacKo3w51u+EVLT3tSGmExgBlp9gW6kZtHSNQT8QUaNHEJBfvYh9WlzKAy86QhkWaC/TUHXtL2Tx7Dpx7P7rZ0Ehk3ZS2iAvdW++52Wkq7PXjCeNx9PpYpvWLaICYdUHxjcfbI45rQsPv/EzpbnPmfklTMP6bg9yMpP45f3n8iKOZvZ+FHXOlazTrqeKf/4Da6BfXo5uiskSSK3MAvF38BqoN+4g2dgqEYMi9TdxZvTt4SgZzYCIueedhHDxw3kqXv/iaOHAPv2UAIrYLZ0HR4T0VRMzt0zhrCsOUBFJMZPijI4oTAdW4fFpGp3JWHAXthpHVMDPqIKyKauk0UkmSI1p917D+mWdKIBP6H2NnRNJRoM0NjiQ9E9jDAEjinOZfETT1E4fAbnXdJV/E7TdKReqisfKgytDWfGMI7/xeVkFefh8HYlkNG2AK0PbkBEwS+24j2lhAFHHNllcRULRVB60U35b2HGjOuYMSP1/9y5T7Nu3U5CoRDhsAVJnn3YpAbgFzN+we0Vt1O2tIzNgzYzvGh4tzZCVEUp6iQ1p58ynbKhA2htaScQDLFz4yaiyz4i/i0FT38dtHeQmjT7j6TmRxwCXBlZ/PJfz9FSXUlW3/7U79zGm3fcxO71a+g3dkKXtms+WUzZqjX85JZruwwaGQVZTP7JlSx98++8e/+T1GxehK4FySo+kpnXXkFGwbcToHe4mDhkGmyDjZWru5AagGV1y9jRvgNJkJBEiaSeMoUaahObql8FjqJdiGN+8K/d+tWjKmGlc1D3eK28+ouJXPDMCn7z1Co+vOdEjhiccnvsrG3mhMdWMrnk8LNG9kU8Gtn7v3U/mfHmVh8rH01Va9oGRGU7qicXe14R+f1LmDx5PH0Lc3oktU6XmaYWH88/8RTRlZ+RPuZoKqvqcLTuQgICu0u7tG/fvo3Nr79M2Ocj6GujKtqZKXX8Fb/6SvdUctpE1nzyFovXpLHpgicZMrWIoT+dhsVz4NT2PVAUE87qBsDMEE8dg08bzfpn51FZeByv/rWUkX1Xc9Qt5xzy9WjRVOBu044G+p1ykLZGElHubup3p2VisUQpLnYwfNzAjrYaIt2fvT+awN1DQGx/Z4qwRhIqd0/sWXo/5PMhAFZXZ0yFFgoRs3Tvz9eayugqzC/BarFDfve0b13XaQ4EeOe+v6OLZrZOOJYrP9lMnarSJOg0KwJRReCZzBxOHZ7T7fhDhaZFSMsvot/YQT3ujzR1ElRlhIe8o7pP8PFwHLP9u9MzmT79l0yfnnpmd911O3bboX1fe4MgCFx30XU8+PcHefOTNxl+dfd7NkV1bG5Pl20lxYWUFKdi2DasXIMAZGcffm2pbwvt4T2Wmh9jan7EIcJktpBbkho08gcPQ7Hamf3Ev8jqP4nBRx1BybihvHvfY9TvmA/A0vcG02fEIAqH9AVgx8otlC5eBAg07NyAroWwuYu4+P7vd+bTXnSsJqV9JpKEmqAmXEOFvwKAkZkjCSVC+BMBmiKdAYAnDr+HePq9XL5bx/rCBiSTiKbqSLJISVWI/JBG5ewKTE4Fa6aVbIeFS3UzfyVGWaWPkj4eAN5fth0Bg7MnfzOaKmq8UzPGYek6GNhtqQFeH3U8BSX9qS0rJ1hXSax0JfUb5/L+u89y8rbdWIYPJ+fOO4ht2oRSXIy5pIQVpbtZ9MjtiIaGCLSuW4wDiItmLKOP4de/uIhIcxObX3qe7auX06Ql2FOZ06YZ9HF6GHnKGfQ/40wk01dbeQmCwNkPnsqaRz+k3C+ybKOFlWsXkGNqps8wLwPPmIi9sPcJdMsbS1i6TqZQqeOYey5ElCTyjhpOuKGdxQ99wvrqXOxPzWb0lTN67cPQ9b1kL2vCEUxc9hwrt/ZFfvptxv/yJ70epwoasqnnIE2PV6BlnwKkaQ4PrYGu1qTPFlfwdGULOT2ICh6Z7wHgy/IWfjKo5/sPtflwAg5v5zVsrVzNSKV7LFjL5ysAqGr1UVG3lYbGRtqamwi1NpNsb0PwtWLxt6F0KJAvH3sMy+Uk3rhBBgL9kBmgCXyJRjB++CnEuqZjaJFuk/O+iLV0WkitGyTK1s1GQ0UTVXRRx5BhYHgG/qxdh30d3xSi0TYMQ2LDht1UVPwRRZEwmxXiiW2MGTOeMaOvP+S+vA4vBSMKaFzXyPba7QzK7yR9oYgfkyriTus9+cPhtBMGtm8rY/CAvl/jrv77aI8ksSkSlm8oTuu7wo+k5jtCS02IZMJFIlpPxbpZ1GxdyRfPCKixFkomnk311tWsePefrHjXoO/oU2iq2EHEtxNRcjFg0tmMnXkMb95+He6sH07qYKs/RVI8ts7gzvM+Po9yf8r7PCZrDC/NfAmAF8sW8bcl13DKsD/Sx5GN/ncJ8AEQtItIGugSaBrYACwS0rxqdGBPyPGkjoDBL9fU7SU1C8taybfo5GV8M9kJ6j4S6MZ+85bNaiEhmnDaHVx4Xtc06duvuJI+TdUYySTRdeto/sc/CH3x5d79Xo+XvnaZmulncMwZZ/D+3//GoONmcvGFZwDw4dWXsbO9MxVYESSsDi+hSIC4SaYy4qfy7Zfg7ZcOeg/ZkhlvWjoFo8ZQctqZ2HNyUVx2Jt92IZOB1vU72PzhRqqrLSzd7GDp5q3Y1SWkO+JIWgKbW0FxOxl85jg2v7GUzTVu8vRKTvnrJYj7kAN7jpcTHriQyLWvsmRtPsoLnzP00s4KyoZhsO7pN1i2Nhu71E6fXB/TbroUUZYYf+2l1N/6GivW5GG1vs3QC85G2D/eJxFGlcGk9JyOmpnhYvv2zoDurKxsdrZVoic1xI6B/On5qe/i5Lzu349se8pVtXBLI5zcfdUOkNiVOt7lTmUlxX0++rTbaHHoPPfK3fhbGom0thH0hdDMYXIiFj7+/VV7j4+ZrahuL7jTMPUfhC0jm/SsLLLSsjireAB90uxdXE2Ly1r4srqGrAMIBR4M7Q0tgI7Z2vsKPd4aQgEiw1W0SBw9pqLHNYjroIKgQoFlCB539xilbxtWaxqjRlvxtSeJJzRCYZX2dpVQaABqcjVjRn+1/n52/M94aP1DzF4xm0Fnd5Ka2qYKALxpvbuVNU0nKcicPPOYr34j3zLawwm8P/B4GviR1HxnqN3ejuI8n5lXDWXnyoVsmfcKsjmT0/5wDwMnDmfLojGs+fhTgq21VKyfhcmSw5iTf8nRF8xEMSssfO1jQOW4K3520HN9X9ASSJGaNHun62cPoblg0AVcMLizynSpL6VHM2vLA+RnzuAk86mY4jpRk8CUa0ZQkmEn291hCdF11IhKuD5MrD2OFk6wYlsL7+5uAREaOnRHovEE230CZwz85gZeTetkMpGkzv4G76RsIxLoGgdU39iKM1hHQUvr3m2hL77EOmoUzhkziK5bS3DOF3jd/di1aTGfR8JYvensXr6IOxbMgYgPZ9zXpc8EOolQR396z5L6vSGgJwk21LKtuY4v5nxMuqRQPHAIg089k+wJE0kfPZBpo1Mum/ZdDVR8uoaGnWFaAiYCShG0AC2w7qFtCLqbEncTx919CZK5+wApiiKnP3QeT//mC+Ytt6LG3qD/aUehxpMsf3EhZY0pN6EiJ9laU4xx/4sce9PPEWSJU247i7n3vcr8xSWE2t/giN/s990Pt6BKApK5O6lJJqMoiplEwkJ7exVebxG5RXmo23WayuvIGZxyFxyZ62b7zjgP/arnLELFaybN1RmHE0lGqQxUUB+opC1SBZ++SVVRFrHfXUnY0ElIIjhSVh39o2XEraA7TGQ2a+wY04+0I4cyuO9YCnNyKcnLxeP4at/NplDKipPlOHwdpprSlLaPlgz13mhnApDof97RSEp38mMYBlW3fY6r6LtPZRZFkbPO/GO37S+++GcqKgbwzDN/oqXFIB6XkSSdgYPsnHnG71GUnl1nHrsHzatRt7uuy/am5hoAMjN6zy4M+30kFMdXqsv1XaE9ksBr/2G7nuBHUvOdIT3fgSCIZBR6KBh8FiaLhaPOPRGLIxUPMGzKGIZNGYOvsY3qrbsYNm1slyBgTU2Zm+3ur+c3/jbR3jHppjlT5lp9HyuHRbbQ39Npdbp37E85Ons4r+z8hC3Vr9Mw5FRyN8IXo238raoaquDChJlHZgxBFEUUh4IyoHMS/f3SXawTUpP7hxX15H66itZQnCQSp47rOR7icKDTeQ8vPf0SWjJJMhpGjUXQY1FcCT9snscDd2okoxG0WAQ92I4LyAxEuvQV3bCB6IbOoo1DzzyNFRs2kKyvwpAVBMWMZHPiaK8AUtlhzlHTsGdm487JxZORhsftIs3r4ozHFjIw08zz15wIhoHZ0n3AjoZDPH75BUQkiexTf0HT4lU4fJto1ZO0btvI6m0b8RpjGDppIgNPHUfawDy8/XLw/rozsCXuD1E+aw27V9dQOCSNvsePwlV8QtdnpOvoiSRyR1CuZDVz7g1jmPvoxyxaX8Ki9Ts7WhYxeWQFY6+5HIDtb73PF3OLEB98iWk3/RzJamf4qWPZ9XwToV3b4NHRYHaBKIIaxwg3M9oUQNSfZP6SncxvSWVbmc0x4vFOteRgsAWvt4j8gUUwB+rLa/aSmiGFHkI7G6mpCVDUg4pqRrqVuop2Ln3mTs7o9xEuOt1XbkQ2W0rQTVaKHR6K0jJw5+Xj6tMHcWg/+vQfgWIys7vdx3tXX8TRI8/k4pNP7vmLdYhojKQytfLchx/LEgvq5FkDZJlb8W2aj5JZhDWzCEGSSQZaifvqSfiXs8um0FpmoT3UxpflXzClz1ROPDJlgVTjQSTVhvjdG2p6xU9/egvvv/8IVVWtFBWZSUvLpLm5mdKtUSp238nMmTMYMeKYHo/NyMmgZXsLhmFw48IbiapRbJURsoGczN41oBKN5eiKOVU483teELI98qOl5kd8DUimFEGp2NjKyOkFHHfpmT2282Sn4clOrTzVRJLX//w3EvEIgaZdgAxCd1/99xXtoRYA0l2pgGZREFn5s5VMeWMKs3bN4g/j/0A87iceD3D/ro0saCzHY6TcBaedXcCEK4o5sTlMlS/KLWV1bDTiPZ4nqepsCkQ4tSCdRY31tCQV7l2QCsq0CipTR3RmPUUTCcL+CJo/TDQYSb3CEWKRKNFIlFgsRjweJ56IE0vGiasJ4lqCuJ4kYSRRBZ09eSKxjQvRZAu6yYKhWBDNNjREJHRi5RvRFSsoVkRXGh6Xl6w+QzFlZSF5PJgHDkRKT0dyu5GcTkSHA0GSuG2/e9N1nb8/+izG8v8gYFBpcmJOGIg1jYj1LUiShChJ5Ag+fC0CFRUVDBq0TxxAIMLmFeV8tKKN3U4Trr5DGFBRStNHT+MAWtJyKZa8WGwOaGxEFvuwdpuZNTu24dCWkp+RJH94Dlmji/EOKsTsdjD0p9MYegA19nm3vsm2tmxEPYmsxZFJIKNybPpz2BU/7VoRiqzhcEt48voDKVIz6Lyz0LV3mLugD7E7XsDhltm4M5dsczUTs+ZAuAkCtYABgohgsmGWPCStJsobOi0GAwe68HjTSE/LIzd3MNnZKauTM9ODFYWGuoa9bYcPyoC529myvbVHUnP26Hz+WeZjdeVgjhsrgbWQdHshec4+5Nty2fjv8zBZJcZefzkZuUNweLpnbN383odMIFU49XCwuLwFXzhJut3EuvYIouXrCabpO5ZyYd8NULEBKlLbDAMShoQsaDgE+DzDzdMeN6x6fu9xH+z8jBsCDTgUO2ZVx2zRGWHve9jX8d+GyWTmvPNu6rZ99+7FvPfef/jkk096JTU5mTkEtgZo8DfwWcVnAAyrdJJNGlZrz0xO13WszdUAjHhxNIKuIBgWJKzIghVFtGISzaSbc3nhzNtxmr+eHMTXRXs4Sabz+11u51DwI6n5jpDb383wafksfnsnu9Y3M/ns/uQUH9h021hRR9PuJYCIN38MR5xxBg7PN6Mo+m2gPZpa1aa7O7O0rLKVQd5BbGzZyDuzfsW5q17DDFwm21jsnECVZzeGaGO0txBFlhiS66J/lgNxRw1KNEnj4vUk2vzEFnyJbnGiWlysbYgSdQ6grrGKFtWOlmkmOcyLGFaJm0RGzl5GTJQI7WNuvnzxxyjaPsGWBijImAUTZsmEIimYZQWvzY1ZMWOxWLBYLFhtFlbu2MrIiccz7XdXdrvn9z74nN2v/4Of3/1X+hYdPCW5rqGRpx55BDz5JJHQkkmERAjDZENNxFDUEIqhYjNbkeJR1JZq4nYPgmEgoCMYOiI6I2Qds6Dx/nvvc/YpF7Lis+0EG1X0sBkBgTwgD41lZ5+BPTaVdHcOH7cIzE6TqZ46EtM+cRuR+hbKPlhG5eYQu5vT2L7IgEW7EPQdyFoM2UggoSFiIIoGomAgCan/JRHq9JQK8Jj+ERLRJImYSiAqsDx6KUdIr9DPVQpaAkJRWL8cTvsHdBSAHXLhuYjS+6xY6KSmxcz4gbsZf80liJarenp8e91/lyZifPzvO1nXasbSEGL6WTf1mGWWbvHQ1NYZm1RQ6MKBwLYqHz0ls18/vi9Vm2exulrh4rG3dtkXj6bcN8moxrt3PIwt3eBXj8/au/8/Dz1H2aqPmWCkXEYb3o6w/r0F6CYRJAHEjpcsIJhERLOEZJYwmSWaNZUqi4Hf0FnXFkJPM6Pn2cAG3qjxtaQcCgutsANaTnkVPRZAba9FDzRixAIIVg9SWiF11c+QpcPDk57DaXPyzJIn+Sw+j4caHkPfs7Aqhhcs93JowgXfHxQXH82YMVtZuLCGWCyIxdJdD8ntSI3NbYE2JEFCMzSi5pSV9sWrruCU++5mcL/Re9tv3L6c9esW4M+RcTeoTHddQEI2EUyGiCQjRNQwMS1Cu7aN1tha1tVdzNTi/57q+aGgPZJgYPb32NR2iPiR1HxHEASBqRcMpO+IDJa9X8a7D6yh/9gsppw/ALu7Z7bsyc4EwUy/ccdz1g1fLU33+4BAzAdAc8RPoKWOQCRIIBLiSPN0NrKRO1sWc5wo4tV1BqgRihsnURu/DEFQGf3gAtSkjqHqoKYG0TZZp+2OrvorAgJKRj84egBboiI2KYbf7eRIOUGtTSNHNHCJIk4Z3us45nJV5efHnIHdZcfismHz2LE47QeVjd+Dde88jZrsOY4lLcPLbqCxufWQSM3nS9cBoPnqSchOBNmELRmEZJCEuwCPt5iC3ExKLriUYcV52HvQWdF1nS2rypn9zjKsDQXMebwckDHMGn2PtDBobCEvfFFP3rYw948bS0F6yuUprKlhdqCFd7Y0cOHIvL392XIzGPmr0xjZ0bevtJLmjZW0V4eJx1SScQNNNdBUHV1L/a9rBpohkFQFvEYjTqvGpD9etLfPTS+8ycLlA9lm/QWFN6dE6njnF7D5nRTBkTqHpkHnncWg80iZDw7RhC8pFk7/9T1s/sttrGpWGLN5IXkjj+nWLsuTwc7G3Xvfi6JIf7OJbc3d40ta2gI0NLXQ2Oajj5BFqL4C0aQgSjKiSUGSZC5/7DGCrZV89uRDqImuVtTGXdvBSJA1bAZNshdTthdDN1DjGoZugGZgaAaGpmNEVZItMVbEo2jAJrOWui+7jKwaUBthYnWSc2eWUJL+NV3Q0TbihoOMCaf22sT/4qsMFyVGDUmpR9/b52HuJfV9iMYizNr8NHeVPocj9/stK9EbCgqKgDoqKjYxePCR3fZHY6m4PJvVxuPHP84rW18hvnXz3v0fvPooN92WsmJV15cx+/a7EA2BPcvUXw6fzoiB3eO0Hl7yHs+X3U6O89spLXEgpGJqfnQ//YivAUEQ6DM8ncKhaWxf3sDyD8p5769rOPuGcV2Ija7rLHlrNnXbt4MRp7Z047d+rZqmEguECbYHifhDhH0BosEw0WCQWChMLBQhHo2QiIZJxqIkY1HURBQtGUNTY+hanB19GmAInPpJL3EEBixWsigSiigLKWylCJfJicNhw26RcJhlXBYTLouJ7et2Udou4nz4GRSPC1lUsfYpwJydzlBR5PyOLheuXMt5YZHBDRW8dNoJOBypCUDVdOZ9sYFzJQt3nTD6az0bUZTRkj2La2VmpFyHrS1th9RXRUMrUczc9+c/IooigUCAhx9+mBEjRnDOOQfXdvnoqVVUrfODIWIR8tCVKLlD7JxyySSsHRoiT75XSt62VI7YO5+U87uLRwBw1ug8bpzTxIp6fxdS0/VeRdKGFZP2NYULvX2yYbnO+HM7K4CTOzpFaioWw8ATux/0FWMSBFHkktOm8exHS2mr3dUjqcnOzWFtw1YivhBxn494U5BiERb7w/zygTdpCKs0x0XaDTNxMfWbvIVJzETB92h1j+cVkTjZeiM7Eqt55KKTEUQQJUhGRKyeQVz859/0es0btrVw+1up33dY0diJhgeRTEHijIHZ3HrZGAzD4NZn1vBqeSNnN8UYO+rQymD0ikg7ccHNgRwP7XqMwUp3wiKKInabA8OcmvQz7QeuMfZ9Rd++RyKKiygvX9MjqWlub0ZHpyCtgGKpmCPzjuShp1MkUB2WiUlSuPfPF6FXt2ONCIgIhDIlHM0pMpqT2b08CEBrxAdAgeub0c06XBiGQXs4+YMX3oMfSc33AqIoMOTIXLL6OnnjLyup2tLGkCM7V/Xt9a2sfP9fAAiCGU9O30Pu2zAMErEYofYgYV+AiC9MxB8kGgwSDYWJhcPEwxHikQ4yEo+gxmMpQtJBRnQtDsaBFDEFEJRURWTZgiRbkEwWTFYXNk82isWKYrNTaJUYq0TIzu2P02LHaXPisjmorE/wm0928a+Tx3DKpSm12S/OP5ULeIO0aAGXPfJktzM+tWMr29sUCk4+6oD3P2JAP1hfwXM5fZm6biMl/YeyqqadeFKnXRGYkff1BxNJTLmJekJOh+hWe+uhkZpISy024rw2ZyXFBTm0V6eCaEePHn3QY7eu2UXV2iAgMu6cTMYfOxS5hzIHTpeCD9DPKODSqX0770MS6ZMQ2E7PsUrfJDKGD4U3N9OyrRzv0A6ze1rHtVQs7JnUHAYKx52I++M51FTuJrOxkdraWpqammhqaiIYDNLelvpcVj4wixIjReQmIPG5EWddq0GGCQa6IN8jUJRpJjvNRd5nVUQtDtxn2jE0DUNTMVQNQ9c73hsw14MnW2D4kSPQVQ1d09i+KB1NG3DA6529sob1kShDzGYwYIzNyps3TUXZR9hREATuvmIcn938GXM21HPBCV9P1iGr/WOUfQKee0I9GkeaPb3ub4u2IGHgsR6+AOB3CUVx4fHEqdsnvmpfNDU3EbfEMUmdsUsxq4ElKqCWNUJSQPVKWIcUkNm3P253BmNHTWPpik9wOr1kenu20rbF/Bi6gk35bmNZIgmNhKb/4EskwI+k5nuFXeuaEQTIG+Dpsj09PxNH+lBCrds56vxriIZCfPrEayQiEWLhMIlYhGSsk4yoySi6GkfXYhh6AvbJ0OkOGUE0I0odhMRkQVas2NxuTBYbitWK2WbDbHdgcdixOh1YnXZsbid2twOH14XNY+9x8jxU1DZUgWEiO60zUO6Kx56lfM0KikeP6/GYRFJDF0ROv+55zh+ewc9+cVqP7bxeD4WtzVSnZ3LE8CFctbSChbaUW8CuGkwq+fpKn5Jk6tX95HU70RAJ+HyH1pfdC8EIZcs+o2yf7cXFB7eM+DuE5ax5CXZtbKR4aB7Z+d1J27B+XpZQSUmmHc9+K7MBssKib5jUJIJBghUVBKrrCDT6CLZECfh1BApprW5n7zS//rXUX9s3o766ZsOLVNaV4jfsLG+A5U880WW/LMuYFAU1GqVKqERyB+k3ZSKn983lwtx0RFHEH2yjrHIzNbVltDRuonJzMwO1Y/BZfAwYf1Kv565Y+hEedzZjL/7d3m3hDY/jtZbSMOtVBJOCICsIsin1UswIssKanVvoI8Bzlx+NbDLjSsvqQmj2QBAEJud6+LSujSXrGjhqzOGTCUU/MKExdJ02EWbH6vi/Xtqouk6qkscPJ3Fhf4iSRDTa8+840hZB8XT9rSwb0UZOo4lBGUM49dyrGNKve0mG88/o3SoH4I/7EfXvPoO1rUNN+IdezBJ+JDXfG1RubmXlx7uZcHJf3Jndo+CPOOtsvnzmbha/8UjHFgGEDjIidZARkwXF6sHuzcVksWG22jDbU4TE6rBjczmwuhzYPc69L7NN+c5TDVsDqUk0a58Cgu6sbMbOPL3XY84//xiSr83l0ZYsNm/XOC+ewNSDLgrANRa4GZi/YSsrzFZ+pVuZku3GY1WQv2bNHABJknu11IiiSNxkQ/J3r1nVE+77wy/RdZ3a5ja2V9Qxe9ZHSGbrIQWC9h9WwMZ5NUSaRKKqyNJZmznrymnd2g3r42G+BLt3+2F8V9fFSLeNDxNJmgIxslxfPU24dfVitr/+BgHTIIIJL4GYk5i+J/DShIQbp2LgskUZWlRNybQxnQfnjITtn0B2z8J2hwTDIOivYuWmV/h92RucVZly2Q3s14fM3AJycnIoKCjA6/V2lCBo5olHHqc2WUsk08/yxSuJfejHCEQwBTWUZOdz1wWDuAWkzBn4nD1Xld8DOeYhYe9M2Td0nbPT/oQoGLCq9+PelAAJ6Egy2iYPYfCty3ts++BV41lw+xxemb/ra5GaOgaSxw5WvvsIgmxGNJkRZTOSYkUyWUgaqfvoY8lhRfMunCYLLpMVp8mCUzYjiiJF7mKShkB5yyoGZE067Gv5LqDrOrNn/5OWZivTp3d3uybVJKaIicz+XZWDqzLCZA+fwA0z/r1322c71rClqYI0q4twMsa/t/8JwxARdSeiYUEWbCiClajejirXA2ASenb1fpvwRVLj1w+9RAL8SGq+F9A1nXkvl5Ke72DCKT2vyEefMImsPk8gShJ2rwuby/qVKih/nxGOpX5Qxz26EAUBSQC3JPHqr4+kKK/nysyZeVlcd/0FvHndawyWYr0SGoC2eALFlEBPyyUe8nNe/2yGFH1zgXniAUgNgKbYiW9axF8uWYWopVZEp958N6OHD+y5P1GkMDuDNLeL+Z98QHqfkh7b7Y+s/DSuui8Vr/TEDZ/QUt0zWTVJIqF0BbGmMxg2rqo0x4M4XSGk+lpeXN7AIJdISU5fhvbt+Tp7QtmirawLn41bqiMvJ0Zxmo4zU8eVn4mrqBBbbkF3JeA9GH0hLLgfVj8HA47v9RyRcDMNDevY0biWJl8FDeE66qOt1Goh6g0VXwdRHd02GgDRBEahwta2rSyrWUZsXgwtomGKm5ANGQQBTQP/F+uJOwRwmTHlpeNIzyA9O4+8/BL6FAykIKcfJlmh5qZFWNIPZP2ERHYNmDutFlqsBVkwaDvycqyjb8RIJNCScQw1iZ5IYKipVywaoykeQZI1MufdiFmP9noOm8VEid3K9rYDE6yDYaOWQZ60g4mb7uhxv18UoU8Bi4LbWfTJGd32G5gAHQH41/K3+PvpPyxS89FHD7FuXZiSAQZHH31Ft/2bqzcjGzIlRZ2/Q1VXMTBwmLpmC92w7NJuxxcrx+OxeAknQkS1EDEt9XlFVI1Mc18uGnneN3tDh4G2/5FilvAjqfleIBpKEvYnOOrcAXurMfeEvIE/zCC8g+G84/oRjWsEokmiCY0NTQG2RmJUN4Z6JTV7cEq6xnPBTN54fhYXXNZztcPVLSESafn8OuQnN24wqOCbVT01DB2xhwKIezDkpLPYtWkDFsWCKIoIG79kR+nOXknNHnw8fzmyoDNp1NDu59R1khE/iVAbybAPNdyGGgmghtuIvjIbZ2Iifud45t36Bom4hpFsRcBHQreSNGfhDRbibN/NrL+dz02ZXQfmNOAlgHrI2lTAl7/89JCfxbirLqLmz+/hj9gZf+EEXCU9F0jsEd6+YLJDYyqrJBkP8/HiO6nwlVMbbaY6GaSOJL79fiN9NMiTbAy15jJScfBZeDd+PUFSTBFNPQk7F+xEFVSS5iSiTcSeZcfldpGVnkVuWg590wrok1dyUItYMp6yKhZt9VC6vgHFImNzKHjSrFj3XeUmZJTGHJpWLyBr/DS0mqXIgEVPYM06cBbcnnX7uhXPIOkHru5c4LZQWe87YJuD4erktUxLv5UX/m8y8XiUZCJOMh4lEY+SjEf5cmcd6cvWM+aE4QzNshFRY4TVGDEtTkSNE9NifLa+CjEUQzUN/lrXcji4/4PXeH+TgVVWEaI61yx7l4HOVmSLCIqMYDYhKCYwKwgdL1ExI5rNCIqZypYoopxJKGMMcxY8h002IQgSgighYLCyfCd11jqWhpaybnkqO7EunFIXDu2YxepwAvQkhqHzC5+f+vhQJpecgl4yGpPJzGlDJh7o8r8X8HWQmh/F937ENwKzVUYQBeLRwy9K90OG123hdxeO2Pv+nTnlXP/lNjI8B3d//Ommn1J/64vcUprBtr+8xO9+fTqedA8A1b+7m0T5Di4KN9DnlMspHzyEE9zOr6Xp0RM0XUWSejfbnn/eqXBeKlMiqao8+rMvKduwnpfjcaKN9fgrylisZhHsPxlVN4gmNeJJDVPcj6oOZffDbyHtnoOjsQHZpFN4ahtmJYmCwf5DUDIqUrYsh36eBJuGDaG83oJMEpvZjFl2YhKiWBwaDs9ukq52/JIXSDIh/1T6ZY7HqzixJc0MNrl4Ye2LrFV7dn30Btlm4+Q/zuCdv8xn1mNr+Mk9+chfRfrf4oJwSjdm8/b3+XNNilBNMMwMtmRwnC2HPFcfstNKyM8eRVbGMGQ59RQeWfMIz21+DoARGSO457S78BgWdteXk5GWR0FOv6/92df7fYiApAs430gFcWtAKxDGwC9B2ATeZAYZQKDRTxagRpowA/GWRgIr3kM0WRBMZkSTBdFkRtfBSOrYcwqxuDMRJBlz0odfyUXX9V6vO8dlpr1Opy0Q71K+4VAR7Iil8KsagihisdqxWLvGeLS1O6lIqPx94BRGZ7v4x+pKlm1vwm0z4bGacFtNqJWpZzFu/IEtWP8NrK+J0BjO5dTBjYQqwgyvLifpMGMMtkMkhtEehoQGSQ0SOiQNhKQOSRCSBoPyi1g5KZOGZZvoKUy41lbL8pzlUNl930/9IUY1vIYmCOjABMMAlsHGZayz/4MxM37+X777bwZt4QQWk4hV+eFb/78SqXniiSd44oknqKioAGDYsGH8+c9/ZubMlExVeXk5119/PYsXLyYej3PSSSfx2GOPkZ3duxxTMBjktttu4/3336epqYkxY8bw6KOPMmHChL1tLr30Ul588cUux82YMYPPPvvsq1z+9xayIpGeb6d2RzvDp37N9Mz/AbR31LO54Knl5JkVJhV5ias6V546qJvlRpIl/n7Hzzjrptd5IZLJcatLmTJjMskWH6HPXgWgHzDRLpB5yqj/yvVqarLHejh70Lx2DYsff5R4PEZSTSIA5p3LaNq5DAARmMpO/uUahs2ioMgSDosJq9VDeXuSlWmD+JW2DaGhAS0h0pJ9HFr+QESrG9HqRrK4kO1eZJsbSdPhP5cx9JJRHHlNZ/B0/MZCNEsRtr8s6XJti1eaofQp7h12Hjm5Y7rsW162kmXJeQecVHuCNTOTk68azBv/quXLx99mxo2XHfKxOHMIRJooXfsUSyvmAPDX4nM5aertBzzsqrevYGlkBdmyzrkZCsWRVdS+NIPoMzJWVSAMrDML+DItxDJdCAaY2oK4WqNE7SbiM48Cq4P1fYYiDO6PS1ZIV6x4FQtpio10s41Mi4OaSIDfEuSisTZOKBlEIq4SDyeJ+eMkAgm0QIKWBj8JQyKMRki2UAJsr9zKWMBbNgfK5hz0MSR1kaGiztPRPlx48ycoRhIFFaugkW/ROHtcIRedejRt4SRmwGk7vPVpc2vKvXX+8N6tR3WBVJv+XitN4TiPfLgVI6GDScRQ9S6i5i8sD7Gz+RVq0zIYnyvQbtiQJDPTvFbSFAcesxOP2YlN/uayfawmGJLRxD8vvZy6nVX433gc/7V/ZsqlZx/0WF3X2X7Dnzg26w2qhuQxY9Lb2GUFXVfRdBUMg/uW/BpbM3x0zpdIgoQoiJRu+w9XbXiIgrOfxTTgFPb8+iMhPzU71jPww9ORzD8cIbv2SPJ/wkoDX5HUFBQUcP/99zNgwAAMw+DFF1/kjDPOYN26dfTt25cTTzyRUaNGMXfuXABuu+02TjvtNJYvX97roHjFFVewefNmXn75ZfLy8njllVc4/vjj2bp1K/n5nRP8SSedxPPPd0p0m80/fDnnfTH0qDwWvrGDfqMbGTD+h6bJ+c1i6ugc5m9rYok/RHssxo7t9SQFSF9g5rp9LDp7oFjM9LHotMb9HDF5KonKSqJbdoDigEQqbsRQJYJzV2I7YgSS/ZuVI48mQticvbu0Vjz7JLuCbeTIZixmC4WSHWQTgpqkKuTDFtV4bODlHKM389ydvwBg27pt3PDSMjBnIQITX3iBymnDsfTNJfe3b/R6LkPXEUQDva2ly3ZdsIDaXVDOaUsFPwbCDewfauq1eTDadHyhAGkuz97tqqazsdrPkpp21vsj2CWRIruZqkic2oRKo6HRLBv4z8sBcnh74zKmjJzc4/VWN29m2645VDdtotRfxhapheqifNj0GFbdYIxgpn9ed9GycDTI4pWz2LxqIayqYiBgmmRmxnAfftFBwshDHlaD73wNvd9VqJEQsYY61Ipq5NZU0Ha8MIuQ1oDdn8D1+jy29R3KI9f9lM7lug5EOl4pCP4wZgw8g9wMHdUzEbj3vWe5dWUOvxq/lgk5Y1hTtpQas0BocholBc9hMVnRkzEMNYmWiGJoCVa99xpaaz0mUcPutFMybDD+cARRmcyvzCLhuEgoLuKLamz3Cfx5aZC3Vr2O05aPQxAPO+B9/cZNXGpZxfblq7hxpR1DlBAkE6JJQTaZURSF8sYIObIDp2Li5c1VGAmdJ6+ayEnFmei6Tms8SVlLK/e8/RmtEYUPd1tpycxhdlPneR5r0AB/x4uU9ZAodiGOXUhiF1WsRpiZ4jxGK/XIsgNZdmGS3ZhMXkxKGoopHYtWhNVWhMnuRjJbEAQBi0kgrqZcku31jYiwt4bewTDrkX8yeNZ/2HJfOnHHKNId3cfeikgTgxwesmydOj1aIlW+xe3sugi1Odx7Ey9s3h9Oevv/SoVu+Iqk5rTTuqbN3nPPPTzxxBMsX76c2tpaKioqWLduHS5XSrr/xRdfxOv1MnfuXI4/vnvgXzQa5d133+U///kPU6dOBeCOO+7go48+4oknnuDuu+/e29ZsNpOT88P5knxVDJ+WT32Zjy+e20rZ6iZGHVfYLbX7fwmaphOKqfijSQJRlUAkTqSsjLZgkLZQmFH2MP3FCPFYlGg8zof6cJ5ZV87WdauIaBDRBaKGSBSRiC7QbMvmJ5VzKZ94V4/na/1nqoqS87RLKPjrzd/YfSSjMWJqCFdm70qqPl8beSYrF77ydrd9215/BWvJMB54t46WeIhgu5+//uM/vBZ2o5qzmKY2cucVxyKKIpLdihbpPXAUUoJzkgU0X9c0XUOyI2jdSY3bkZqY/aH6bvvS7F500cGb26tpCDezOhIllNSotELM1BHXsmfuSMZx6QYZhkAOIqMEmXdJxbS4HCk3oq+1kc1bNrJpVw3r6qMsikmIha8gmnzYdIPBgplpzv4MtWQzdPiF9C2agtThWtpesYF16xdQW7aNUFUdluYksi4QM+uYJRFBgyO8eZxwzHwsHcGbZR/dTOVRb1EYqGPgzx4+4HMDeHf2QgDeKXFjsoq0xCP4k3HaEjECyTg+NcmaGJQDLlvvlo3SJitpljbGp72A0foCvlZwKBDTZXKGTOtxgXf6pHMJB4M8ecWFDDvmJxT+7OcUAr3lgb304UL+sljFrPoJI1O6q52h/btXJz8YnB0fo+HKx2a2oqoqajKBnowTj4VJaElGEaVISS0EajqsNuNyUmO8KIpkWs1kFubx8e8v39vvdUt38no8zFGCyO+H2pH0MO2JMIFEHH8yTkBNEFA1gqpGUIOQBvMTQ/CoZQxILsQwNPaXorD4+tNn5W1ESLm6DEFFN8X4pdqHOVLqugZMHEk54Lj1Oji395T7PUh7+022HzWNYGYEIZliYavqV1K27Y+YjSA+ZRQVkQAz80Z3Oc4XbgTA4+7Trc9Ie4oVO9N/OPPV/0qFbvgaMTWapvH2228TDoeZPHky5eXlCILQxYJisaQCIxcvXtwjqVFVFU3TsOxXQdhqtbJ48eIu2+bPn09WVhZer5fp06dz9913H7AgXDweJx7v1NsIBAKHe6vfCgRB4LjLhpLTv46tS+p4/6G19B+bxfGXDkH+Dv2cmq4TjKv4IyqBaBJ/XCUYVwnFVYIJjVBSJaRqhFWdsKYR0Qwiuk7U0IkaBlEM4kBMMIiLEJcgIQokZPYqxGa3NnP7048ypLKcnpxvYcVMxcTLCFldNMsCNtEgTTawyxqmcCtKdRW2ZJwZTj96VlZKKSMcwUjPwjlxGs7BQ5E9Tuquvxo92H1i/zpo3rILAG/fgl7bBOMx+ub2HOQ9+MKLqNpZBdQRMGSO/cunBGQXl3uD/O43Z2FzdsY3SA4ramCfTBc1AcF6CLek4lDCzRBpRTKpaG2tXc5jmOxIalfrDYDblbpuf6ix2z7BkU5rwRPcGdKAMFihjyBwvmhhQpqLKcVeZEGkqj3KwGw7dnPnoFjpj/DpZ6sY1lLFUyvDbAxsplpLTboOnAy2JonG88mND+ORo09g4oAzEKXuw1FZQy2ffPICydkpV13UZiDlOHGPHMa4icczdtgU5r3xZzZ+vIGf/OSFvYQGoOS0+wi+spHqrP+QvnkG6cNn9PgZaJEYejhGWygCaS6OyOvTpfbVvvinWsnf2EyBs3drX104j7ZYiCGjFxKOBgjFAjzx+Uq2tljYlViNy6rgFWWGuu04PDbMDitmh4X25tRn4Eo7ODm55PSp1LbM4t87Uu+T2uHFshgdYXzX/+KnON0966Xc9PzLmIKp8bMxGAdJINN6YEv5I0cOYOvnG1kiaRzXaOaaEQcXCCyZt5h+aaOYPrqzjKumxYjHG4nHG2leuhQA8aQIhqFhROMQS5K1MpfRRmqMlDvcwI3HnsqQg54RmkeOwlu6lXZxMIWxJby84DTytK1kAc1CAZ7oAoKalWGZXV3XbZEmbLqBxdo9izIRSJEjT8bBy6J8X9ASipPpPPxK798nfGVSs2nTJiZPnkwsFsPhcPD+++8zdOhQMjMzsdvt/PGPf+Tee+/FMAxuuukmNE2jvr77KhDA6XQyefJk7rrrLoYMGUJ2djavv/46y5Yto6SkM33upJNO4uyzz6a4uJjy8nL+9Kc/MXPmTJYtW4Yk9Tzh33fffdx5551f9fa+U0iSyMhjCxgxLZ/SZfXMf3U7Wxa5GXXcwbOedMMgpGoE9lg/YirBeOpvIKERTmgEVZVwsoN8qDoR3SCq60TQiRkp4rGXfIiQkASS8sE1bATdwKyDohuYDTAbAhYDLAg4BJFMQcAqiNhEEbsoYpdF7LKE3SThNEkE3n2VosY6Zt9wO/aiInLcDnLT3WR53XgddhwmmQ/309IxDANdTVDx+O9JfD4XQzTwub0I7T5URcEQRcxVu4hW7SJjwXyEjgwR+TArI/eGmvUbERDIH9/zmjoRDhMRwZvf+2eYmZsSm6uwpDFVbeCOyybSb2i/vfvD/jjr51TR6L6Q0TWPwB0Hzt6SzOlozV1JiibaMMth1v7fELLycxCTYUQthqBHoZ+F68pf49d+katP+ePeY7JzMqC5nRIxwc05fTmhfzpKD+nY7XqQO77cxpIdrWiKREtLBC2Smi1LRTdWc5QZuVFGFMUYPngwxf0GI8oS/W97gwL7kUwa3Fn+Qdd1Ply3lldXbGJLs04kmoMn2Zdz7EuZdvXVTJ3YXWSxamMp3j4KFnt3MjDi3DdZ+tEEtrXdTdFrMqLRhB4XMAwbotmLqNSiJ1JUurCvB9Jg/vyBiIJBk9gHVbCgCw50yQqijU83DAOKybP3Pqk3B+OYJJG8tHzooOl90+N8Xhnk/oWpIOinsCPRThTYY3trltv59Lggb1f+GduT92BBwSqYsYoWbJIVu2zDGyliYHIUGQ4Pg1WRoiRY4z6Sm3ZSH2jHku7Cku7GbFcQD8ElFQ6GwBCwH4CkqZEwQizGAx99Su3GFrz6oU1+/5k+jHGzN3BXfRMj0uxMye9dRiGmxgnhINPcNT1dkizYbH2w2foQFusxBI2cqSd0sXa9UbqYrGBqfPC3dFgoR3cXwusJhtmMJsvIyVTJC5vWRJV5CjbneKKBlTRFUllOo3KP7XKcP+7H1YvOoBZsIogVp+XQXGDfB9T7Y4wq8HzXl/GN4CuTmkGDBrF+/Xr8fj/vvPMOP//5z1mwYAFDhw7l7bff5le/+hX/+Mc/EEWRCy+8kLFjxx4wyPDll1/m8ssvJz8/H0mSGDt2LBdeeCFr1qzZ2+aCCy7Y+/+IESMYOXIk/fv3Z/78+Rx33HE99nvzzTfz+9//fu/7QCBAYeEPIyVaEAWGHpVH+fom7qhuwDo3SEFCwK9qBHSdoKETEgzCgkFEgogsEJPBOIiInqgZKJqBWQOznnpZDAELAk5BIAsRKwI2RGyCiEOUsIsiDpOEwyThVGScZhmHWcZtkXF3ZD5YTOLXyiqZf8M6KqYcw+9+ccHBG3egadsHtJ5zM4KeuudEPwOh2WDTiBGc//ZbAKz4+aW4Vqwg1taGuT01WPrffZrM3/wcU843Q24WzXkFALOr56DA1g3rQBDIGNh7+rbVYeMP2SEG9s1mxlm/6LZ/1awKtiysBdMQRiSEVKxQv2PA7AKrB6xpqb/2TLBnIK37Ldp+mcCtYSdmXaDI5oOIiiaa0SQrhtnDr0IGTzh8rGpYydX7HFNo8wLtHJ8W5pRBKfdaTaSdWXU7WdbWzNZwkgbNiV4qItem4k7smVYGFXsZXejmhH4ZTMnz9K42bYhUtiRpCQd5afVyZpfWUFZjQVNdIHjwWJtx6q00mtI556bHGTqwu6kfwF8Tp3hyz79t2eKgf8aNbDPuxp+7DFf5YEQ5CXoE8KIGbWA0INlVzjSc2HyZCB2F7+O2cRh6FLQQgh5FUtsI+0cCcMEba8h0WXjt7NFYTF3vLxDrnsX4p/Om8oczk/jCUXyhGMl/lVLtEcme7EGNJNBiKssqN9FobmMKo9B1jYgWIarH8WlBGrVWYskkx+08lpawm9ZUuHlHjbNskg/eg89fvvd8mqigmSxoJhu6xY5htoHVjmBzIDjc2LKGIwwcTrCuFQSDHYs3YXXasDhtWBxWbE4LJntqUvbk5hHYuR3fxnVMSiZoMB1YZmEPLLLEZ1OHcuTiLVy6YRcbMkfh6EEdGaC+I+Mtx9K7uq4WT4Ic6zbWNAXj5JD6DFoqUwvoSE0dZWu24Ez34s7yYrF1J22RSJSiRQuoOvMM8rSXUtvcp3DZuD+j6irvL3iVbUkRqwjFaV2D6NviPtKEXqbPcAt+wcOhPaXvB/zRJO7/AeE9OAxSoyjKXivKuHHjWLVqFY8++ij//ve/OfHEEykvL6elpQVZlvF4POTk5NCvX79e++vfvz8LFiwgHA4TCATIzc3l/PPPP+Ax/fr1IyMjg7Kysl5Jjdls/sEHE2dPyGJZuAlIgBkydAMb4DAEXIjkCyJOQ8Sli7g1CZdJwqlIOE0yLouMU5FxWVNFIN02GbvVdEirt28TzfUNZNfXErvy6oM33gdaYwuCLpAcpmCEY/h/MolpP3+RiZq2t40hikRcLtIGDUIcImKfehbhhe9TdszR2KeeRdFT937Tt9MNzVtSmiuZo8YcsN1vrju/130mpfMz0xIS/Kn2gH1JnjSCK6tJlm3AVJIym4ccIyh/rZTBmzchyl1/9tcAc/59PEGh6ypZ1VJBnS83Szz/8ZOoSl80Uw6gIOjpeGhhuCVIg7mJNvJZcvOR5LsPTdQwFg6RaamjoWUA4++eC4aMYlbo4wlS1BLlrmvOJCfbzcJPS/nFsko+mbepV1KTOdBJ9bpq4tEgZmv3qST/2Mto/GQpzYPeIPvEx8kcNLXHfvKBgbEwG+ZMw2efzwmmo8gfc2aXNsu1DyhfY6Zql49qA06OrCTbu41ih4DX7MBjcSJaqkA3s76+giy7iwybC0WWMSsmshUTmW4HVQg0FrnoN23Y3r4/ePtj8gJZPP6LV3p9bg/+9j2kcT5+cfFphNpDbHhmNltrc/CcdSaukkIS/iCqP4QRCGIEgxiBIISCEA5hREMIvkacsgtr1gzY0U6GZLDLBG/Mfb/buSRULCRxixrZko4iwe6kiwFCNQsfPJc17hOxWcw4rApOqwW3IODSzThyC3FlpuHO8lLotPK3kgJ+W1XH2fO28vmMkT3eV1WgErCTZendYmTEVJC76/YMcFpIxjt+90bKDVf89jMk336GNqAFAfOrb1Eyrqs1NRaJYItFSQ7oJKUZ7uG8V/o87vq7SQNqEwqZiq0bkWrx7aKrvnAnxFg7BUY9K9/9OxPP+V2v9/N9gWEYhOMqTvP/hsLL174LXde7xK4AZGSkzOlz586lqamJ00/vXe5+D+x2O3a7nfb2dmbPns2DDz7Ya9uamhpaW1vJzf3h+CwPBxMn5vF+m5Nn6lqY1eznpH4Z3DewANMBBPp+aKj7fA4KUPAV44aEWMr2a0zsj+mFrWTdt5J1j44jnp+P2LcvRZddirJpE4nRo/YOSAX/+gstTw6j9V93E1n+OcmWGzFleL7W9Y8ZM5ON63tP0W2r3I2s6TiLeyfpB0NOPzeyuY40qRldFdAjQURb7+tAU3YWGDVUXfxT+i/bAoCSlp7K5WlswJHfPf4nXRMxhHJWvXsxyZqV1Kgh7spIQ8q9n7Cciyx5UaLr+WnOBI7LKmJq1ghkMfWZLS/czQVPbOXltcu46dheKrDvh48euZ+RtRWEMzRy1XrOHlTM1Zf9mmgwwUu3LGXhMzvwNaasPx57gLW1vWs4Hfuz3/HGrXez+P37OO6nPRPV4VP/ypr5F7Op6koK6q/AkzWGYOs2otFqYsk6EjSSkJrQlAB0GAtafHPJ58wu/YhOnewJGn/tN4krXlzNrt2VNIsPs3mfKhj2DlHwiz9/ZO82QzchGBYkw4poKIwodPITx3Vd+n4t8t4BR2TDMFCSViz2BIrFTFqumQmXncD2O1ayvdbKaX84Dsl08CG96YmPSVRCxi+LObFgEkcHwsSDUaLBCNFQBN/ijUT8Jqwjq4nHY8RiMeKJJPGkRqHmY0JyKSMj23msfTLbDC9hLOiI3LD6NabXrEUF2jpeSVGij8nKJdNO5KWzfsLUNxeQ5/Bga0/gEgW8WXbcssQiWgE78YqVLG5KkpbmIc3hwWP3YFFS7i4jpmMo3UmNNWmQsKbue8DEkdTPmk1bbSORdj/1n89jwJfvkYjEuh2XlpHONrcHuTRB26gbicZqSTdU3PWdCSobojIWU/fFcZsoMkDrthkA7zHXwAefYNStO+hn8X1AXNVJagb2/x9Jzc0338zMmTMpKioiGAzy2muvMX/+fGbPng3A888/z5AhQ8jMzGTZsmX89re/5brrrmPQoE5V0eOOO46zzjqLa6+9FoDZs2djGAaDBg2irKyMG264gcGDB3PZZSlti1AoxJ133sk555xDTk4O5eXl3HjjjZSUlDBjRs+Bf/9LmJzmZHKak9frW7lxew3tqsqzww9e3PCHglAkShrQ8OxzVL76OnI0gjUUQr/u9xxzdu9k2NZnCD5Aeb4UQwT9t9eQ3FqGsG0bzjlzaJ8zBytg3bCRupv/hP2oI3FMm0aiIqWgZSTClB09GSmtkOL3Xj9sd1TeoMGsW/cpOz5dyMCZ3S0AvuYmHHw991z/sVn0H5tF8JWHqPkEtPoKxP7dU9v3IP3OpwiumES8tbN0g5KeTgyINTRgskn4139OvGwxYtMmHLFqnpFSAdSRpo8wGwZHAiv7HcnMwQ6OzhvB1Dd/hUNxcM/Im7qdb1KfYszWpXy+JcZNx3bbTSKZQDF1TRfNLRnEoE3rOaV/lLodDSSXNVF6wonsbqqnYWiIivog/pwI9b4gISmDynjvpQDySyZTMNrL5s/XM/n0VmyO7p+l4vAw8cS3WDnnHKqlJ6jek7YtgyMxAqvUD698NFZrAYlkgGr1HzQnl7Dk83uRTU5MigtFcdAYasUpmji2KJ3y22Ywu3YT138B10/+F1MyBtEaCVLtayecDBGIh/DHU39DiQihZIhQMoQ/tou1pq38NDPY6z31hFA0jEk3Y3N0LmocBZlMniCyZE0W7//fm5z6l5OxZPZuLWt7YxWJSjeGGkM0K8hmE65MD2R6MHSd2IsP4GofiKgkyb7gDz138skNsHI7b9/8U3DlYug64ZCf2uOuR7fJRO58lEirj7jPTzIQQAuGOCocxvjkY+oz0oj3HUWdzcx2WSCsxggYEJGLcBk+nl1dx5LaIlJyhh2fnZTAJse5VfXSx5Zg/+WBPaET0Axef6sUu1PB6TTh8hSR1sdM9Qtv4DM7GTW6e9jwl/MXkxkKIkoKZw+/CoBAPMD7vnX0zzmJ4rSRUD019Xc/2CxuKgy9Q0Kh6297wOgpNH2Qhv4NFWb9byMUTy0YHP8/kpqmpiYuueQS6uvrcbvdjBw5ktmzZ3PCCScAsH37dm6++Wba2tro27cvt9xyC9dd13U1ssc9tQd+v5+bb76Zmpoa0tLSOOecc7jnnnswmVL+PUmS2LhxIy+++CI+n4+8vDxOPPFE7rrrrh+8e+mr4MLcdAzg99uqqY4lKLT8b2gKZB8zjdJ58zFkE7rdRsJWRNHsWezYtv2AxzkHHbX3fy0DRlydqoYbXr6cqkv3EXuLRPC//z7+9/czr0sSQk42MbEancNXch54xrF89uY/adpe1jOpCfgQ4zKRxjYUpw3ZdvgZBnJBXwAiO9eSdJsIh5sJR1tJVFZQ1BhHCoXQg370UIikP46hSpTPPBk9FkMN+AED5ZmTMWfHySIl8OYTsgh4RtOePwp1yESKh51MNNqK+aHBXCB5GV+UKog5PGM4KxtWElEj2OTuAZAjigzWljtJqCpKh3tL03RO+Nur7GpP47YTVZaVtxFJ6BzZ302VqrE+63jernESShtACAcP/TOVyiNgkGYJkqaEcalBCqK1XHzezAM+m+kX/5GXr7+J9x/5NaOOO42SUTO7BQ5LipUhw+9jTfnZuKIT6TfodzhzBqE4PF3abVo2j1DNUMzOBsKmNxG1KEJcgzgEuBlLopMszqv6AoCm+k0Illz62l2MzCzAbO76OT+w6T9UhxrINfWhvcVCQ+NWCjO6aqIMTgzErnspq6nEZXfgstv3WikAWjrS9B37BfWOumom5le/ZP78NN666XOOvWgQhceO7vE5RdanLBY5N47HlNWV/CTWrKR1+9GASublRT0eD4C/w/3ZoekiiCIOlxc9CIJiMO606V2aRyMB1hx3FJe3p35nqiSQs3Aememd969qOvFQOz+fH6aP2eDWs934wmH80Sj+aBx/JMmktQ7ogQc6VEiP6lTPradt/53ZP6U+6wI2Xjcf2UhgIolJVNFcYdLyP6TqMhv+YbU8/uqjKNZC7A4H6Y7TSbRYeGLHLAAGZU7i3crVAKQpDvo5M7l0yCX8qvQpXvjklwzbnaSwbSlh0UVcspOQnYwwfOx29C7z8H1Ca4fYabrjf2NO+Uqk5tlnnz3g/vvvv5/777//gG32qBHvwXnnncd55/Ve0Mtqte61BP3/jtMzPfx+WzVL2oNckPvNZvF8VygZMoiSt17rsm3dyC+Q7b0HDAJEqjfv/V92ZaDrOg333Iv/1VdBlil66t/YjzwSgGRjI6EFC4gsX0Hgk09SB2ka7VOriEzRad48BcvaQuzCYBzmAbj1ErwTjkF2H1wRNNYWQDOSuLK7D2Dbn7iVVl1AThvP87evR9QSXHH/BGLr1pFsbUVr96H7fGh+P3owiBYKogdDJOvqECwWjHgcI5HASCYxVBU64oX+OPdBljR2rg7fuk+lM9fJQDQBiCCJJBsaEEwmiCcAAcWsEbAORZt5N+6hU8iUuw9kDmcuW93ZWHct2LvtzJIzWdmwkne2v8Mlwy7pdsyJQ3NYvT3OS2uWcMUR02gPtTPm7qWkKknBXZ/LQOoZLa/RSLeYyCxyMtSpU5AWo8ArUZSRTr+sPIoyC7EoNpKJKI9ddg4jThrBCcd1rZ+T0BKYRNNeobPM/BGMPHUUm2evZ/bm15ktvoYrRySrpIChR57MgDGprClPn1GMTr6KLaMfVk/Pk04sFKVm4XX8/IFRONzp6LpOMh4lGvHTtriKvlLnYirHkZr8X6p4kpcqnty7XTAE+mmFiJKVBouVYHx9l3MYyLjcXXVMRuw8hfRAX2av2yfgV1BJynE0OYkh6jhIw+Xq/tsY/LPjcBZu4vMXtvPhm22kvfoaZ947E+t+xEU016HH8/B/tIKMX3TVcVFGjcH8yZskotnowQNYkUINIMrQg/VRyXJ129ZUUUp6u0rFEC9CQT6LKGfHf67k+QtexWFL/cZkSUR2p+PTZY5Id3DCqKO69VOzdhHNTpn9nae610JGMMEld02mpT2Gzx/DH4gTDCQwtu8gW42TjCRJRJJE40mCfTaSM/QjNNVKm+SmQP6c+tq1NK7JZB8vIv6cMIyFDzY/wAf7X4yc+l4/3LqSdytClIY97BAKsIpJbGKcKnEkTlf3mm3fRzQHU+EjGY7/DSPB/4a96f8T2CQRWYDPWwKckO4mvZdMgh8yVFXFkogj6r04rDtgKxhKMj8LU20TlLVSOmw4opGKs+n34X8w7xNobsrOxnveeXjPO4/QggWINhv9v5jDgo+HYm3NJCvrZ4QSpYT1Ulr5DGWnQMa1CqI7G1PhACyDh2AdOxLHkaMw5XQ1KQeqUtkWVk9nmrVv/Xy+uPsWKiUvgpSLZE4FKOqSws5pxyKovVT0FoTUS9dBlpE8HiSPB9FqRbTbEWw2/u5ajtbPw6MDzsBpTccq2IE7SXpsDP9sNoIrrZs5HKDxgQdpe/55ZIuO6Ksm+e6fiW06Ees5NyD0kHoaLp7CqPXvEAk3Y7NnMrN4JrcsvoVPd3/aI6k5a8Qo7ps1i1dW1HPqoBG8t3IB7FOZakqfeq4+ZiTZnkyKMvK7uaN6gkmx4syW2bVqC/PNdzD+tOuY/NbRe/dfMOgCbpl0y973x//sXqZfoFKzczFl6+dSv307lasrKVv4b5y5TzHyxOmMO/5q0ktSVaQ1fyXxqrkYjgziYiEmVyEWu5NIMIIgidicKUIgiiJmqx2z1U5UbsAldGaJXDP4TI5+S6R8kEjeYAehWJC1dWsQBZGIGmF9pJ0WMUG6cwz3H/UnxqcV89iyUh5NhslO6ww1NQyD7GAf3H113EeaCUci+EIBRNVEIqaSiCZJxnXi1DNmSHeFZYD8qSO45IjBbHp+DkvW57Dzw5WMvKKriz7z6uNofLSURG133S5BMZN+3Rk0/+0z2t/ykzVsZI/fJSKtIHe3OMo2A7NX7OaS8TdVYwKKb76dwRNnkFu6hiuWX8XN71zHoxf9u4trtl3TyOihUrSupwKA3SGV0ic2IFpk1KYIQkzFHVUJKBJOh4LToUDhPsTqpE59nG3rZlPbfg0WQI6dz1HT/kTIt4uN288if/AAzv/DC7QGgrQGAoSjMSKP3s+xG3MYeMElrJ89C1thMbLHQVO8lZpYFXG1igHRBhY2FuNP2oiY7MhaHEXviA984d9Mn9ldguCrYFVFG0lVx2kx4bDIOC2p7NP9M+6+DpqCKetd1v+vOjU/4ruDKAjcPaCAO8tqGb9sK/8cWsQpmZ7v+rK+UYiiSMWAQaS9+jJbpk1l2Nie6zWJkkzE7kHK0FEuOJ9oVTXuDz8kftqpXQjNvkjU1KCHwzimT0c0m9G9ICdclExLua50XWfBx4OwxLNIu+IXxLaWkti9A//7Kwh9FMVzRiOIkLBPxUgfAv2n4ClKEZbaTZvpO3UUS//vVNYFHMi6k1H1jdhUUJXXMZHEHGxA0FTSLr0U6/hxyBkZyJmZyOnpiB0ClOFVq6i6+BJMBQX0+2RWlwHf397IFx8ez53OU5l+5I17t68z3UnTaRMZ6endhx9ZuxYwiFlHI8aaMMV2o+x8GPXOx4ibh6H8/F+YijuzQ/LHXo6y/h1KV/+bgpEXsnP9i1zf2kayfeneZ7WtaSlf7nqHpQ1r2Bb0oXimUFF3CpPuX8aJJW2cOljg423ZjMxu4OVfXXEIn3539J84mk2frWbNu6uxpL/aZd8b29/g5iNu7lIhXZRkigYfQ9HgYwDQtAQbFr7Auk9mseTFL1n17hwmnHMCo8dPxfL49L2CyCbdwnNNL6BhBtKQrYEe46DCEnjFzmGz3R8jJ5lBoqQPR45PWW1m7hNcfMcXpVSrMZad1Jn9ZtSD02vDJHf2H2mLoRoCIwYUMWzqgMN6VgCS2UTRuEKWrG9G0zv7T2xYRHzDMiJbWkA4DVnWUct3IKZnIjhcCB1p96LLjetoD61zbWi1VciFfTuvW9epXjObhnY3JXaJ/VWBMi86lfqnZuF89m5cv/zz3u2hpjq8QFpuqq9RQ8ZxZ8st/HHXn/nHBw/yu7NTcVqaquMzDNKc3UlNqy/GfJKM1mWsFQFkDBKCQEIR0QwDIad3TZgNy16jofkNZMcWtHAJAwb9juKBKXdmsD21eIqruzBJMjleLzleL9FEnDmRMObswfj/+TxDYhGMTZUIGOQDqU9TBPJokRVG/O4GTpk8ueM+NO679S6kyg0H+7gOiOq2CD95clmP+xRJ7EJyUn9NqaxXi9yxz7R3n3P/9+YUSZJEgcZAHJdF/p8oZgk/kpofHC7Nz+C0TA+/2Lybu8rr/idJzRHPP8vqiy6BK3/J1qefZuiY7sRGjcWw7d5NfOZMRl17La27d9P44YckV65k4wMPMuz6P3QTZmx/+WUAvD/76d5tit5pnk/46tEdOs6i0WSf3Sn5Ht+wiPizVyGIEHdOQY5sQ6xaglD1b4JJBTiCNWtmUfqz94kqTorD7Zxw++3EN1bT9Pe/I8gygqIgF2SR8+dHsE/s6koBqLv5T8RKS1PkRhBIVlQQXrgQcfhwateupf+xxxL0p5RKnTZPl2MjdgnV7+/W575IlJcjZ+fguH1e530t+xDt49uxs57Y53/DdMUz0KHqm2dNWREKFzyEZ95fmQQMlWRcmsrNL5SwTDbTqonIGAxyOLi03xGMmzyVi1JFsvm8LIcTS1LCZdtbvF+5KOYeTL/gLxxzns4/rziVxtKNvPPTd3hyw5N80RHLUh2spo+r51RvAElSGHvslYw99koqSuey6PUnWPLSF1S2vMWeJPqwqwB7oIarcy4grHmJG3YSuo2mu/+JLtvRTU4MxYmuOLjQaiEt79y9/fuDcWyArZd4hHZVw7Of2G9tNIzFIfHFix9jtpgxWy00lqYm13pfAGdZPa40B560w1M6cQ0bgCOykdXLbOSO2Ipl07vUP9zh4hUk3FMhwQwanm6EDselQAxBiCOIe7KLbPDsSSC3s45hlEpD8almmjQnMJ1J2i72L0Lg/t2D1D81i7LXPiQgCphdHizuNNqWLMALeLI6tYROnnIWZS07eTrwMiULB3Dq1HNob4+iARmu7mndtY1hbiXKv04ZxilT+3bZd6Dv1op5jxEy/g76MNIsNzPqmEsR9yGloiSjawJOa9ff5NtzvsASi5BTuhbVYuPCJ17C67BT3dyKLEmYTSY0XSORTJKXno5tn/hOSZYQTQoJ84FFMg+G5lDKLfT8pRPIdJoJxlSCsSShPYruMbXLtmBMpaY9SmCf96G4iqb3ohII2BQJw4AC7zdbD++7xI+k5gcIr0miMpZg1AFUQH/ISMtIZ9wrL7HmokswfvlLSp95hiGju2YgVM+diymZxH1iKkg9vbiY3WecgeM//4Hnn2fjW2+RGDKE4htvIGtk6tjgvPkIioJt9Oi9/bRaVrP8lSMwC1lgGJAHjfqXDO7YH37yWuwNLyM7RcKOk7D/4U0ADE1F3bWV8IZPSCbeJd7sINtnMG53A854km1XXUdLvp3Mh/7IuJMuPug9+z/4IHV+Sdr7V+nThw8e+yelArB0KaZ4mKPdR2Pr2zVOImY3Yfh7LwOiBgLooRD2SZO6bDdPPp3o1s+heheW+vfhrvdTbgXJBPEgBpC0uNk46lz6jroEizMP9a/9ua8iJZT2xcTjOGL6v3FaOt0o625tZ9baJSzf1czSilS8xJ9nmL9W9pcoiqT3dVG2qAbZ/Dg3XngTIzJHYBJN5NnzDrmfvkOmU3j70fz90jMJ1RjU5pjJb4ijSyHqx/4d3VePEfMjxAMI8QCoIUQ1hCneiGyEsRrN3CNEmZc1AEgR7fpqP/0BWy/xCD5dx2N0lWCoSUsiqHFW7d5AwlAxBANzNAsXg9m+ys/2VSmCOumnuYybeihi/10h2yycecvRvH/XQt59sQE4ilOHfY69pAj7iWdgPe489NYmEps2oYeiGNEEejyJEVfRExpGTGVH2zLeMk7BqsZoJBNUGJ0W5fgRg/lgwVqs8aYu5zQMg79+eiUjM6FPfRjrXzvj5PoDfoeIYu5qTbn2jOspe6WMO8rvpU92MZKWipbJTOvuBqltTmW/5WZ0t8j09t2q2rkqRWjCMznh9H90aWcYBivm3EZAewtdVRh6xK/37oslkuz68G0S7gzS/S2cf+8j5Hg81LS2UpSZiUU5uEhdMhzEOICQ4KHAH0m5qYfmuch2HZ5ryDAMokmNUEwlENtDhpKE9hCijvejCj1f61q/T/iR1PxAYZdEdobj+JMq7kPQpvihIX0PsfnZJXDFFZQ+8yxDRnemMbfM+QLFbGbgtGl7t41/4H7Uu/5C5fsf4Js9G8/SpZQ+9DBZL76AFo+TrKpCKe5Mhy8MnE44XEaMRoKmMjAETC1mHIl9Mj8aNgIg/LEMu6szOFs3dN7f/Tz/CM5BHQq/yhrDecc/QnP1TirXLcL35RyK5++kqnQd7EdqSl97mfnvvY5VlLFZrNidLnJkiexjjqXgsX90aZvUVJBlJlitrBM1smN2SoYf3aWNalEoWFFB7R+uJ7JuHXoggCk3F1NeHnJBAcmaGgCcp3TXkDF2LyeRtKCc9DtY+RRE20CNwaCTEY6/g+zMQeybo+M77S94Pkq5FsY2V2FJxoj9PYPoqFPwznwRr8PLRVNP5aKpoGoauxp3MzCvpNt5vyomnXUpH2z5J7VbdnGKI5fLh19+8IN6hEhSF7BZNbYNdGJzDcW7Yx02/3VokoguS+iiRGLSpXimdE162FS5hRHPH4mY0Ukq0+elrFE5PUy2ALOt3WsyBUwS6UjcfMct6LqOGksQDURoaw4RiiaoLW+hfEGERPzws/Lcg/pw7n0n8urdq1EFK7abHyJjfKc1QkzPwnJMz8KlAPX/+CPxNhMl6SYckSATJ4xn0PQL0ZJx8mpfQDA3sW32dGTJjiTb2RpsZFusgbXXwtUjfo3TlI0QExCiBoRUcnO7134SRZH7zn2Yi9+4kP9b8juOEe4DQLJ2Hc9UTeWm2VsAgzRzksCOrcRb6yERAUFEsrsx5xZjy85F2EdctLL8U1Bg/JG3dCE0gfZqyje9RVh+HSE6kCOnPoXL22lFevL1V3H4WglMPhZtxQJW79jBc/f/BXdTLf7iwfzl/r8d9Pnr4QCS/etpCvuiKauZ23r4Sr+CIGBTZGyKTA8x3P+T+N+bDf8/gCgIvDiimFPW7OSO8joeGXyA9MsfMNIz0hn76kus/dnF8MsrKH36mb3Exli3juiAAUimzh+8YRisW7Gd2Vt243A6mAG4j05lUaz41W/xAqXGEGrueJNh50xk4JmP9HDWFJI715J4+zbsbEhZaPYhNFuWvMKd2/9GqaRxhjmb353wTzIyUyvq/JLR5JeM5tPPPsPnEDji8j926/uT/7wJ0v9j76zDq7i2Nv4bOXP85MQ9JIHg7g6FliqVW6Xe3t66e29v3Xul7kqVugAF2mLF3TWEhLjLcZuZ748TCCEJUrvt/XifJ0+Smdl75MzZe+213vUukUR7DI2uRkqCXspzUji2naKrIVUlMxLh5AcfpGT6q5SvKScxtrV3wqt6MQZUXDNnIpjNiEYjwfx8gvn5rY6zN0sv7IVaW4ZFzsevZkSVWP3NCbE542HKx+0+F+egm2jc+B7OPbuIK8yHf/fGAASq26bgy5L0qxg0AJ37nEBM3HOYi4OUz5+HPS8Pa2oaYge13zrCFzNfxRARsCZHKy5Zjn+RxpTX0EMeCHnQQ17iNi/BMvcVZny0gLqgA8UgoxgkiHgo1boyb/pPLF+5B8VsoX+VC4Mlj4yDZI6kaq09NS4EssRoSEAURRSLCcViIiYlylKRJJGChUU4nL+sdpAtM5krXpzE+zd/y44FZSQObhv27Ai+YIRO1gin3vDv1tfuriA1LR89YMGllhPRIkRUHZNZ5wJr9D7VymdoPKC/rTXd6dRjZpvzCLLGtUMv5JY1jzKtYg4wjGcWzYfFfmq9EvV+E01BK+OFDbxgfAHr+8E2fexFWDfiUnoQSh6Bsed4BGErAI64liyz/A2fUVzXorU07vhPUUwtxscPq9cQnvUl6thJ5GZlU7dsHnte/TfWZqFJ0XbojEgAR+MeaIR/n3sKHmMsD7z3/mG12x+NvjAmg/irkoL/P+CoUfMnRWeLiWsyk3h2TyUPdUnH0VF9nT85EhLiGfjBe6xrNmy+zeuOZDaRW1nJyqxM9gZUPE1+3n11GrX+PSBCYk00RGJPSaF8/XrYugNVNODKGEhZqY1tz28n3bSE5GwbMRmxLP6+nv4x35Bj3IbRIGARtiFp4HUci+XW6ASvVpYQ+fhOHreswS+Z+GDo3+nXe0qba64q3k72kmj17tKJJ1J77DHk3v8IoqX1JDXk3AtJ6NmLL265lhqzkW+9VTjOOxVzvIm0EaPoNuokQpqGtVn3xRf0EREjrbNFakp44gydWxqGc871LyAfMOiGKispGB9VxDuwPEJw/gdYAOn8V8Hob9lx4lMH/UysF69k/Zun0r9iMQABkwHnJcsP2ubXQGZhDVlFXpquuY4mQBUEgiYDVWkOAhlOYkrKCcfqmFL6kjPmNGxdumDJzMJktyOIIk3uenZ8Oxs9w4gvLYmGcAPG+N4YJ7zQ6jyuLi+g7v6BHZ9oyJJO10Qr4VCYoG6jVLVirW0gUF5FJBRgbcDHTrWQna/5MSpKtDyLyYhiMmIyG0kK6AwWRDZVVuM0mYizmPAIEk6p46ra7saoknJM/OFNoAeDZDCQnVrHzsIkBlVVYE4+PBX2cp9EJ3tbLkaTK1r4MS3v3+TlTWq1LxjyUB8ox+WvxBOoxhesIxBuRKx6HT3SiDfYyNKiL1hbuYRtDQXs8TVSF1bRaTb6YtZhaxpMpSdCvEWgc7zGCEeYFEeIvjt+RHKpVPT5D3JsMkp8KoLZCqqK6mkgVFlEsDwfQ+UqYovfx1T6CqOBgmwLP0w/B7tlOInJA9my8WHs6WANX4Q9NrOVQbNxdyErXvonofRO/OPKawhGwnwBdO+ShyxJLLzvFnqPGseRwhZsOOI2EDVqnOb/De2Y3xNHjZo/Mc5NjePpogo+KK/j2qw/h9DTz0FCYgL933+PdRdfSt7alQAEFYWK/cpkfPDm59T6ShjWbzzJyYns2P4IAKE77iQExALbu07i/DcvwF/rYul/ZlJWZaBkhxU9X8WoSAxyRAX6wn4jvviJmC7+D9aUbPRQkMBn/0TZ+SJhwcCW2FhuTb62XYMGwBqTSJVRxhCMIHn8hL/+jh1ff4d1/Hisw4bRNzaZjQ1V/PD6C1z09sdc/Om3lC/+iR0zp7N29zZiimuZl9jAvF0fgtlMj+ZU9fzqfJK0JHxBH5ZmfsKCxR8SMImMOffmNgYNgBzXkqOyc+ggEk4dhP2cK1HL8pFWvUBYNGLoNSqqOZI2ECrWQ1L3fW0K37ocXYf0Kc9gtMbgD/qY8+YFnF6zeN8xvrRu/B7JoJ2PH0r4tRais6BIGGRIrmugjgBpu32ogoCkr8A3cwU+QAOCBpmwScEti1gz4xh78+0U1D7UMpkeAEf/Gwh2uxg+uYAh541j5Kl3tnscwL/OP516wYW3cjdhPUJIj6AKLQaLb9gkphstTN9W3tLIaMbkr2untyj2GjXO+I7DF8FghJp6P5IokpxoPihnacjlp7DzkXVs/OR7ht14SYfH7Q9VF7Ga2y6UXK5oKNPhaFtA1KjYSFW6kuqIFm9V1RDF278nX4OSpjpGTRuNioBZhFyLnZGJXcmJ6UznuF50cvYi3dkdYzvCjgAN1f8moplJPb1twdcoWkKyDVvXY/o0anwE6nuhx4bx6G/gqwljSRTZNT2LUEMZklLP0vfvwWA045UMuMrWoxlMJI+8lOnLyrBZDXTLG47TprCjKCoMuenT9znrmHZks/dDKBwNG84edzonLPyacEeFLw+BJn8Y5/9IkcnfE0eNmj8xUowGLkyN55miSs5PjcP5P8it2YvE5EQmzPyGkqJivt62g6Y1K1D6D9m33+NrJMGSzol/GY/H5WP9yNP4NisLYzCILShgr+0Eo6IhInOCg4mPRw2SkMePt7SG2GnRsJb38nVYs3LZO5SEfvoWccG9GNVSgoln8kPvkah7nqFLRvvCWi6fh3V7djFw2TLsFhvzN31L0tl3IQLeBQvwLlhABhBvkFncNYOCr7+g50WXkjZ6LCkjR7PqgslUjspCC4cRVQO9BYG+o6IhtIZIA8kk88STTxB2hElIS2B50SyyRMjM6SD1XVFIeehBmr75BpN7EXGRT+CjTzAAugkCQx7HIIr4Qyo11fVk6RoRnwvZEg3Ap5TMxEyA8D+/oczanUDEzYmhcl7LuZJj6xfSuWkH5spdbNw4k9jYVDIzB/6yD/og6HLLy+g36/hLd7DnuDMQtAgGNxiAjAGpNJXvpNuaLQQqK3Ht3ImvcDehinKUqirMc37EAZj+fi2De49n50//wrKfZOGBcDdGjRDLfmHHA6FpGqgqPQYM5vSrWoimakSN1lLy+DnL7aVE1mgKh3GFwjQEgqzZuIkuYsc6TD5XEB0NaztZQHvx7H1LsLma++gdw3XXD+rwWGtaGllJcyjf03EWzP6oqSjFj5EYR1sDw+2Ophg7ne1XRa+t2MLubZ/R0LgETMXIpghERMQKC1cMHM3oTqfQJ3UCknhkY5Xka0I9TOJtybRXsWKmfvgz9DzhHHqJEqGgj+2rZ1G4eTd2u0hY9hEK+AgHvQQ8dYTCfmQhHrPxRPihiUpaZxPqegQEE476av4z5WxEyYgkm5EUEwbFgsFkQTFbMVqshIl+LgGjmY8nXUaOwcQ1i3cSp0gkGg1c3DWVuMPgyTT6Qr+IT/P/Ff+7s+D/E1ydmcTU8jqWNno46U+e3j31iy8p3LQR48Ch1BUXI1utSAYDBoOBjNRUemamYzSaaFqzAoCawgJue+EVTN4gBrURORwdhG0OC5ffOIXF3+exbMUyaoMQpBex3ra8B8VmRtmPkyS/NZqyuFNIPu121M/uwOhdQMjQF/2MNzH1GcaWWQ8CkBiX3KYvgJf/8zX20jQe6HsWBkUioofJODeDv38SXeF6Tx1HXH41bNtGMhLdz28hEWu6iiqBeV0tkc6JiJ0VzvrrA/v2f3j9h6zYuYLV21ZTUVJBw44GemvHECDIV9d9RHKuncxhXUgd0gXZ2DIYxp57LrHnnov2QByqKhPqczta0Srk0ZdgHnkaAIsWzGZSpAgA9alcKsUE6sY8SMIpb5M+43wMRNA0FSUU5D39TCoKrbiIruR3+nL46stVJCT4uP769o2a6oUfUX3v42CRwKYg2M2IdgtijB0xJgY5xokcm4DBmYhkseHesAxrj4HE9BmLKTF7Xz+CIGDJ7I4aJyLVt3hE6ufnAwK46rGkpWFJS4Px4/ft/3HiAEIJDk6aHC2hYbH1wBrehj/YgNnYtlZSdVGUI6RFOh4ivW4XAjoWR2sGpiRLWGJtWGJtxJPI/rWhS8rL8c+Zjgu46813kQwGZEXBoCgYFSMmk5FQfgVGIZHZPxZhscjY7Ap2m4EYu5EYhxGfL4zJFcHlkHG4VNSIxvot1bjdYawWGZtVwW5VcNgMmMwykiQSI1VR5c+GpztDbDZ1G8GVH8I5rl+0ZIhsAElCF2VeqjMAAiVlAdZ//jk+vw8SE5AUBU94MbIB9myfQzjYiNddgd9XRiBUgCaXo9j96DroghOTNpK0+BOZ8dQ7JGSF+ev1rUnwRwIx4CYcm3LoAwE9FCBgsJFyUosnVTFa6DvqTPq2FSpuaafrCIKALxihzhOkwR2i0RvG4w3h8obx1N6JoWgT1kiYkK/ZKAr4iIT8BLxNqBE/WiSArnkBgeMcmXxrtbNE1tFCXm7YHOKsohDLrMU4+iWiWA2YbQqeah+JSyrxSwI+CUKySNggMMAXIj79fzPD9bfEUaPmT4yIpvNwQTlmUaDzL6gp9EdB4aZoppFr03ps4RDBRoWgxYrB1UDptk2UHnB8TFOU2FqrWZgRinptXrtrJiZBRBEEjKKIUeqOURLpZVXJa4pQfO9iwqk2xGwHBruCZJaRzRLCWVtRv76c5Mhy0hs+QX/nMwQhluCgf6OcfPk+hdShMYP4pPoL7Ib2+Q6GimjI4OyNd6ILGoIebffd4Os5abWO9duFBIwmVFEgJqdzK6KrLBm49qX3eO25OxACEpESlXsfvhdN1NBFHUlTsERiSHImMzypO2mDUpj5w5fEhZIJBDQ2bDewLr8C8b1i7Go9sXaV+DQLyT1SSe6XiUVQ0WQj5nPuaXPd9vJFAGwe8zLu0q2MKHyRjJ+uotYQTbPVEIic8xwZGf2Z4PKxpriUbRtl5EKVVURT5q+44h8dfrbutYuRalU4KQfN7UV3+VBLGqA8ggbtVt8KMod6nkCNESDLjpybhqlrd6w9ByOEmhVmB6bQtK4CmtOm/T9+hvWsa1r1s2PjAtLLAjRcduG+bekJY6hv/IbtFd8j2QZgkhTsioVkcwKiKNJYHfXUmKxtDR6/18vXrz6PuzbK27I6Dl+PpFqNXndtTDymYADV6yYUjiBGwvgiYWQ1gjWcillPYfcXhR32IyMw5ryubHh9G9J2N0u2b+7wWA0dkShJWI8EEcrXUf1D1Civ3PMj6EBzKE4TBDg3WrZmu09n++bmfguiHLHEpN50776EkrrmkJwAmiKiR2IxCj2JM44gt+dZrbKJHGnv4K/7ZdwQOeAnZE089IFA8ugJOFZ/RcODA/E5+uI85yGsGS1aRvmrdlBdVMOw04Yj76fKvrfkhsUoYzHKZMYf6BnKAQ5Ntp6zrpz8V7cxaXAf7s+Jvj+aprFkY7R+VD+vDktbUuKjAWKBrfEKkqohhXWUkMbEsEQVRzk1R4qjRs2fFPPqXDywq4zd/iDv9s6hm/XPb9QEsnKJeNz868brWm2//cVXsNVW4XXGM+HYY/GHwtR5vciiyMbvF2ARwvTOjcXQGKab3YwvpOKPqPjCKsGIRiCikSuL9BREUHWMpW4ojda2UZt/BLykm1rIrsG0S1DOfwijvfWEldxcr6espoSUpPRW+3aVFULtGwQA2TQSQU5FlJIRRBNdrnqWNbbXyNvcgKO2gnq7hS0lBahXjaJnKsg5Q7D1P5lASlfUHZUEE91kDD+GUDhEKBQiEo7g3y0g+o3UUElZQwHrdkbDCQOGD+G4U0cRqm+kfPEWyjc3UFuhUuc2sGeXDX23n6Q5Mzk7AdBVyl69DSmjN9aug7Dl9kSQZRzli1lnGcmAiRewYd6n0DyfeozJyBEv22KGM2fqLAyGr8nMlFEViZ2FIpv1ySwO51Armlj10ueMzDVx7xnncyAiTY1oFog//nRkRwIGRwLV37xJ5L3oMzdcMZqMS+8nWFdKuKES0JGsMbg3L8e/cyuRgmIiy/PxfbsNv/41exkkTWsrSDi5H6LVRvWnS1EGjmlz7u2fvkmWIjDo9L/t29YteSy9dr1PuNAI+Jp/GoFycsVysurcDAE+/2Y+wuJtyCYT/vxtCJqKtbEOKdwsUme2kt2zd5tzdoQqV7Qa+qVn/oXBWentHjP6tUW46gJ8PmUwbk8ItzuMzxfG5w3j94UJ+SMoVgMj+iWzqksxgiiQnhtDdnYMXl8Yny+C3x/GH1AJBiIEvD5Mu+YyRlpC2Xk/kJHbg05DPmDPrY+RcuF4Yu99NVpbLBxED/q5JxQiGAFdVandspkv33+dkWOPJWnMGEordiNzEqnJDmJi03HEZ6Mojn0GQXuITU+kyvvzyLIQVTI2BMMItsPz1CSffBEVogG2TSfd9RWlX5iw3vQqVYWlzHljKa66eARBYP3cmeQNtjD+orEov2Jx5Dp3CEEQSI1pGZNFUcRjk9kdpzH69qF4PWHcTQG8riB+TwiTVeG03q15kRVPrqRLTscV14+ifRw1av5k0DSVZ/J3889yL2NibTzXI4uB7RS4+zNCDQWx1dfw9/c+4oJJE+mVkkxYVbHVRrkPitHIib1bi5E9tLEAb00pM64cedC+F8/Ih8WV2O4YjD3GiL/GT6gpWuhODaiovgjV9W/jMDch9xqBKbd90bNu2b0wrJRZX7yWQb1ai9l9u/BLzs25i3JfAYuqPt+3/ZhLb2fgmEkwJpotEvJ4EX9aQ/eCYoZX/IN4GlB3b0EqfIc55XkokRSm3HAnfToPadX/4w+/h2QxcOcDUwgGQhTuKKG6sp6RE6MhHyXOSfapo8g+taVNxB+kem0+NesbKaw9DYtUQWz5l1gq34TV0TRYr5hOL303hIAHYwiJ/fe1T7/6cwy2OAo+eABTwE9qhszO3QKyBo0YGTMmnY9+jAUNttSY2dPo5d4z2j43yeFA80HDTe1rfITfXIx8vZOGtXPw7dhAaHchYowDS89+pJx7Hfa8oYiSTNhTT9O2xfh2bcK4dgvBTTuonRn18ElmHUNuawND0zVsP22gemAnBthawkQOo5OwYCROcHNloocuNierG6pxRzQ8qk4gLZXaLp0xhHQoKUQNBjAGfKDr1GR2Ia6+hpPve4y+GYcv/gfQ4IkaNYn2jr+z/rCGZDPQ9TAmtFtub78O1F40bZpFzBfngQ1+cp7OmOxuAFhOuhDnpx9Q/fECrKcsRuk3GmQZwWzFCBgBdJ1N776IGAmzfN4swj/NxBBpISSrok7QpKPFmbGlJ5PVoy8DBoync3K3VkaOYopBDVej6xqC0DGhuSOo/kpkHQT74WVuCYJA6klTqHXEwo8z0ZJ68dW/vqYs34gg2MntGyKnfxbLvqojf7Wd/NVz6DLAyPiLx2M0/3LjpsEVTTuPdbTuSwxrRAwCoihidxixOzo+l67rqJ4wovUop+ZIcdSo+TOhcBHuGXfw16YSGo55l0f69TvoCunPhHVV68l2fs/uyDjsu3fy07ZMeqUkIwkCal5PAk0NDB08uE07XdOwaD7ueOTfIMmcdfqpDOuZ0+Y4UY4+p0hERZJFbKlWSD1wYjm03o/JaqG73pllVcv4K9e22mcJNA/Ydhsr4+rJKbfi9Crct/1RRgc2cM8ZNwGg2Kx0O2ks3QAejHqlimyT6OydQ9gSJKyEqN5zHrMLDfSe+wa2EWnEnJRDbE0cCDqapmE0KXTv15nu/dqKmgFs+2g+WkQj7y8jSRvVm7RRvYG/RJ+ZruOtqsCzdTXhPRuQqjfg9O/e13aItn7f3999u4bJ500kooq4AxY+2NqLiChwcT8X/zntfIqqi+DHXfuOH5jWvrJxylnXUe73EZq3DkIagktFDLZ+d/P7N4dIZNCSDWieCJ5p6/DwLpoR9CwLUpdUnCeeTubZd7Hzid5ooZY+TOlt1cW2rJpNWnWEwM2tLa2aYHTiyTAEuLlXtA7QKQdWWzihbeFOgFe/+IrqjRsR1Y7JvuUbi6ieXwCKiGiUEE0yktmAUFKIQzOTaj9YZpOKo4OyC0eKisYAMcCKfo8z9ozWHtCkZ97De/w4ym6+luxZyxFMFtSaMrwz3sO7cD7erSVEdAvkphK0gX1QT3K79SMY9OPzufB73Hjq6/BWVBPYsIfiFcXseXc6EaODuKTudBswlD4ThhKTmEnYu5twqAmlHf7SoRBu2IUMiPb2ycntIdRUj+mHGygP92T6wnR03UZCuo+Trz0Ge0L02fcY1Ytdq3ey6JMN5K+1smvd9+T0MzDx4vEYf4Hnu6YpQIxBQJJbG3BiWEM1HJ5Rp4c1iESN26M4Mhw1av4MqN8N398H22dgyxjCnmAyd867hDmBBzjumL8h/QIJ+j8KtlbMo3vSWlL6nMmmz2qpWjiXfyyajyrJqJIMkkSjP9Cm3bmnTOTzWTKmUACpvogVG7a1MWpqXXUU1VSRRbQA9i/FKekn8WTFs+wuySc3s6X44IQJp7AtYQv9R4zmsdBgnp33MssD65EFhWmN73C3diOC2Hoi9yk5GEOlxLo249KTcOuXo6Q2AQUYxDDo4FlajnVEKp0m3E7+19k8e+Eb2GJ7kNq1J92GD6TLoJ5EIhE0VcNkNeOrbmD+wgi6IFG7+1vGPXhuq3MKgoA1JQ1ryqlAi1sn4vdRvXIukQ2fEAmEyff5WLdzCePdfYlJTEfdXckYuYjTTzuR4wf1AiAvtTMPnbCTudur+akohQ2Vdv41fRq9M1Lpn92dlNgod6P48VsQFpTRwiBq3xg333E6mRc9gKQ0F/is2EnTunn4tqwhuLMAbVEBddtfJGXUGa0MGgBzXnab/kqmf0qyEfqcdGGr7dWBaPixh+3IJ694n41TghPQXilkN7uIiBqqqKFKOpoMmgwJTWYSUPBIAWRNR9Z1ZFTGkopbiEM5iK5UMBjBmvjreF+7DD0e31wTkT3LgNZGjRSbRPpjD1J04wMUHj8KUdbxlweiytoxArY+nfBkBPgkvZBFl63GaOiYtKrrOkXF21i0aCZ1c2pwl+1gdckqVn/7UvMRAgumPY3ZZqd6z05c1U2k9chl4vmPIRsO/hlEXNFYqHSQGl8HYs+LN9NJd/Fj08MoRp0Jl+bQeUDLAkDTNMoXbiC8u4bRg5PQMuJZ9s02dq83U1HyBtkDahl58k2YLQeW7Tw0ttd56WNo+37LEZ286iCz3liLrogIioQz18mIYW2NNa25RIJ4NKX7iHHUqPkjI+CCRf+C5a+ANRHOfAup95lk+hvZ8dkNnLDoThYXfE+ns14iM+7w4s3/bWyr24o/WIMWKMRk60MnZ3fsipUEe2eoB2fVvZgHTKY+EE9Es6BrEqgSjt11lG1Ywc6UMJFIEJPZQW7OcHp0SuW+q88D4M6nXkLdvoq7X95Np86p1HsDzM8PsashiZHIjMWCpHuBXyZqduqYc3jr46ncP+8fTL3oIyRRorqxjgvmXkRA8nHD2ju48viLePGipwG4fOp1aCGtjUEDYPn7egBiVJXZixfRWFiNtDYbeB8t1JJSW1qdz7ZpUXVexWokHPSwc+mX7Fz6GaAAIVQxhgsuvIr6qiC6EJ00zXYjqt/PshenYbJIxGXFEd81F0duHoKh9YApmy2kjZsM4yYz882PWd9QBcZGnnnmFQByB0+kYO1iFn/7ORu2FHDnxaciSzKXjJ/M2cN93PXJNLZWiry2zElY8wCrsStesp1uTg9bGGYGHBIYJTBEfwsGCRQZFAOmfr3I/usTra7JmtoVa2pXaK7wsK17D7SuFsJrvm/zLGen5LBi6x66W030s1sYHWvDsHIzlb1SGGRqnZ7cuLWS1XOihk3RtEUEJQhIAkGDSEgWCBsEIgYRTZHQDCIoIkgistNIcoUNiOAeqKAFImhBFT2oQlCDsIYQgQaTHy3dSL+/tag4hwMhFr23kZjKg3tXI0EN56+UyisbLazreQujtj7BjlU/0G1Ia1Vp83HnknT299R9swRLbiwpk8ZhPWUKSq/heL013PP5BECkur4Rp13Fbmn93dletJtvn1uPqImohjBSqCtm6yB6/9VO17gUvn76RXyNW5CMGlu+34AWETE5daxxJjbP2o6r5irOvPUdqlcswLe6EsFlAkFHVyKgqGDSUXyLsAMG5+GrUxvd2wjINrJGJjN2yvhWOj7V6/Op/nQzTi0Bq64gCiLBNeUMcsg0KnW4us+C+B0sXf4BFv1yBoy8CZP58MeMhIhAyNh2oan3TWD7ljrMTSGUsEZWk0rT1iaCA1IxKq2nYs0bpc6LlqNT9JHi6BP7I0JTYd0HMO8RCHpgzO0w8gZQogOzwRJL70s+IH/Fh/T94S58r45i4aRnGDto8h86HLWxeh01m/ercAysVkZw6egP6JbQj4I90e2D7dPhAO/82uqT8NbBRx+1iK+deGIRqhrBZLJiMCiM66uwaoVOZVWAacUmzDL0TvZz35AweZWlRL5XMUnZv/g+bBYbD/S4l+vyb+Od71/l7FEXc+Wn1xNQfNgjTr4rnsmkymN49PunWBtZTlgKcIL5zIP2KUkSJ48bD+Pgx7xlFHz1KI7xu7GNSkPzhnntlcf35UHUiyYErYH4E05ncFwXFn87FTyVCJqLZ2cFyQ1p+CSRBlEjtdBD5rp1bCjohEHwE95khpmVGIRC+vZtokYKYYs1k9Y5i24DRwCw8ofvKFqdzMiJAsm9e/HpJ0sAuHLyGDzHDuE/b3+Kt2AtO4qH0C0rynOwmCy8cEm0HlNEjfD1yrm8tqic/PokNlVb2ZR4FTc94uGWU8498NYPG2FPNNtNTEsg4omuZLOevh3P7G+on5fPu1kD8bt8fF4VJaXO6eokbY+XylMntekrpi7KbSnMUQh0ikMLqVHjJKQihFSEkIYU1jD4IshhDSWik+GOhptcBoH849M55pjcI7p+g0khKIh4zB0Pu7quo4dUYn9FLsXAM+9gz/YPaZj7HBxg1ADEP/wW8Q8fcB2axlv//JCL6x5BVhW+WbaFkBwgZPWAoiEoOqJRhzIb1qCTSN8qpIhOJBDCh4f+PYYQY7Nji40hFEjipqlvo2kh1EgQgxL9ci/68jEKvt7D9gffxxHKhTgZMoPRgq5BHYICuGSsDYnosohszz7sexacDjRPOUPG9CNY50JQZMIeP0UfLiWmzolBVwiPkel08iiaCspo+HINUoNIkmbDUTmG2rRoSr9Xf5efFnyOTZ7CwFFXY7IcuoBSullBDIfaVA+fcGxnOLbFW/Td1A303eZi2+PLkad0o3e3luwuzd9s1BzkXTmK9nH0if3RULQYZt8NlZug77kw8QGIaT9LIm/YBbjzxtA47QrGzbiIuTsuYNAZT+G0/LJCar8V5GaSYEPS7aSZY8ivmI0xEk3UTrEmUwC4Uu/njB6XRIlyqh9P2ENTyE1M51rMfi9GWSEU9vPVl/OYNWt7m3MkJPi4YcolvOrMihp4WoSiN+8h+Ox3+AGhcRK0LzFzRBg7chJnFp3Mc1Wv8uLnbyHKAk/3e5ZP1n/OGnERp806GVlXONZyCkaDgevHXdVuP1WrtjPv9bWAjijANhss6dMZW242j/YcgjO3Mx5fE8pX0QndfPoFBKrK0TesJjD7C6bn9sASE4c3GOTD9HMZV7cDhyrwo+Jgjy2OL/RYunzbQK5B5D9PjCXY5KZ2y3a++1Jh/eZ4VNWAIIbZOtdP0iPl6LrGqi+i4YCknnF8+skSRDFC5y7RocJmNnHtBWfyn2f+wxdzFvH3v53T5p5kSeab9SXk10cNnn7JlfRIkTmx/4h9xzRs+JHyp+4Hk0L3V75DalZIVoM+tp0zBtupk9p4bXxl0YnGedxkImXR98Y4cDy+hd8jGnW0nD4sHd6Dv24uZJPbj3/ZTGKAtIFtxUmcfZJhcSlSNzfHjT842XYvQmEVlydEvNlAT9PPGzrlgErI2HHoqdYXAh0Srb9eNo4kSdR2PZeB2/5DVekukjMO7fFY9/YXSJV9UWJrsPRQ0fCheSNoPhUtqKMFBVSfhCCHcTsruPvaC9rtJ+B1YTBGxyNRVBCVqGlevSGfmPU9ODZtLJ5wNcpZkDG47bsEEHh7PVqxE0k6AkNP0DAg0fDyJtgv6GnXbLg7eel6+bEYmknBsXmZxN7VEgJSQxNYsPhNOpv/gSVrNJvWPoPP8CY/LfwIm3wu/Udeg8Xq7PDU/YemsnvDdt74egdX/aXjKusDT+5CfudaxMXldHpnOyts+bgGJnDcSV3RA1GjRviZ79n/Zxx9Yn8U1BfCD/fBtumQPhj++iNkDjlkM3tcFt2vns3Guc8wetmTlL60lKJTX6F/txGHbPt7I8WaSgVgMqYwsvMZ7G4qwtG4hndX3glaiHREAqFGIMr7kGULTtmCJCqs3H0RJt1NCAuqYKDLcBFroAlZDlFjGIndvwGT7GPQmIXEW6IrnuqFH1H9+NNIe4IQa4UGL0Lk1+MfXTT4ZrbP3U6hUskZ4l2M7zYSPQKV68sYFz+RKydeSHzMwWPyxYt3UC8mkalUoGmwqmsim7KjRsV1xZuJr9xK782raVkf6vQZPIyYY09g3ebN2L/+CFlXqc8cTpdgHSudaSyUo4P1cFx0yu7MF0XVbLFq3F5VRqfO3fFXVaDThKpKxOeWEZsqs2tJMjFxyYRCfhJyy6jdnc5nny0FQNNk+vQeQmHhClJTe5DgdGBNz8NXuo21+SUMzGvNCVBVlfUVDqb0r+Wm448nKSapjYy/e9MSxLVRj0rBP69CstjQAn7UpiakHT78//waDjBqIt6oYddwx39obM6orn/qDrwb8wklm+kbY6MqGGZ2bRP3x0uo/3qFkhwbEwa39U6kZXZihX0t0kKB+r41xMUdWgNFMUgkxP4yMTQloOJzdkwCLmqK1uBKOUiBzJ+DridcQ+P2N6n64GoS7/geUer4e1C3aSPLV8cyMK+AEbf9rcPjDguChBryoqkqoiRRv7OE0mmrcHrjMetm/P1Vup5zOuLBatf5atBEJwc5og1M42/C8t2lhPXp1HU/Hc2oIYgiySP6kp3e/mc99ZPNLMivIdPcxLgBIJriSUrPY2L6y9RUFLBpzbP4DO+weNHHWMRzGTjiOix2Z5t+ThyUxnNvzCDw2Rs8Uz6Bm679a5v3PxRWWTungKwdLmqOSWO3QSJ3RjHCmho4qWuLp+aoUXPEOPrE/tsIuGDRv2H5y2BJgL+8Ab3PitbiOVyIIn2Pu43K7schfH4FPaedwtz+NzLm5L+jyH8copnTlEAIBW/pv5la8T7JkS0YiGD0rUbFQIXUgy7xA9q0q3CXEKdXUWkaiWbqhq6F0LUQflsIWUnmwv53sqhkHuFdV1IfaMRSX8ueR25AWFgGOSYS3nwIuTqeyr9fH9Xj+IVwu4Ks+m4XSevruEW4kVnGnwiwgaee3oDDlMjsu785ZB/+Whf5Xy+jfJcbJQKnvhZVFn5gRlQEz6GWsQcz2/VklKoNDAbcsQlEvv2EfK0l62ZR1rEk1ZeyPbYP71wzkTynhZryGop3ldJ78DGYbRZGTf+KG5co6M01pBw52cAGAD6RfmDCpgmIwLJZM0jOSiOjhx2/uxJfIAmvKSoSVl1TwpdfrgJmYrUGiLMbqBIMvDl9LvdfdgIp+6m9rivajDtkZVy35Fbb94ej/1i8TAMg8tEqwooABgHdKOybvLRwCNHQYgDE9j+B0MsVeNYsJfJWVK6/aclWIj6BnWNyCWga02saERFIe/oWTH6VrPdeRTa0NSJEUSTl3N4E3imk6LktfNLPzglDu2CzKljNMiZFOmg9pZ8LY0jDZ+p4ei5xR8nwaQdJ9z0SFHv8fLGjmvk7azi3x31csO1WVnxwL8MueaLDNltnrcUi2Rl6/UUdHnO4yBsygjUzXuXtq29lUOZo4r2JWHQrvm4hupw/AfkwUqgFfy26oeNyFe0hcdjpVM2IZ7VQzEdFYawGCasiYK0qwGbag80kYzMbsFoV7FYDiiLz6Lo9hIFOQhXjgBo5Zl8+ZGJqZyac8gK1lYVsWv0cfuN7LF4yDYtwFgNGXI+1uZyGr8bH18+8TqThR7CloS36hscC9dx1023UNwXZ8Ok2NINI7IAk+m6KlmKwfV/G9hwLfhHCjui7qvkjCEYJQfrj0gn+qDhq1Py3oKmw/kOY+wgE3TD6Vhh1Iyg/P+shJbMv6vU/sf7bf3DMumfYvGcetrPeIDet66944T8foijiTrwen2cL6BECESsGmjBoXnTRhqBDtbsIGNuqnSccJXR273w7g5Lbr3EUo9ipC4L72Vsp+nYXyGC+9RQ6Xf4YoqzQ+M08AHTt8Orf7A81orFlTQXlK8qx1wRID+t0RWCr08CAywaivrYMSYtyPFyBGnZuLqJr7+yD9rnpvfms2mkH0ogXK/Ztr7JGXfUuKR30qPFiDgboe8Lp1AZh14q5yL7o8/BZ7bx+z8X8Z10V5fMLOf7ZRbxwySAmd04mOaMlxvbiikYgiazs6Huws3wubwx7gjPkkexS15Ni0Bi45wzWz4wB3Q04QLBx0qUZzF05g0gYdmzfjcMB/frnUllRSXWNH69uYVmNleFPrSHW6KZzvIduSQaq3BEMYjxje0Q9jeFgGFmRW/G9HN1HUaaA8ZKxdLnttVbPpnLu2zRc909cO5bh7N1SFVkUJVInXAETrmDL5jHgj5D36TI2FOzghkI399jMfFXVwBllK+myqoyKm89iUNeOayLldOlG5XVWit/dw+SVPli5kSAQBCIC+CWBgCwQNAhR8rAioRoENCVKIBYUCcEoIRolZJOMbJJRTBImk4zRbEASBcxmAxZzdAI1KjKWkEbDQXgSpe5oqnmW/Zd5hD7cUs5j323DWxfYl2e2Kz6bnMy/MbLwZdY+v4eef3sDk7nteFNXC6nxjUjGXy7oOf6iUzDZbSgLKkj0peDq5KbLReNQDqLTcyCEUD26+fA0avZi9dcvMFiqZZvWG1mA+kCYUk8Qr6bh0zR86PhoFlPeDzPOH0yDKBGqhqbKy1lZrJBg7kXWsBeRrSkkpORwzCnPUl99GxtWPoPf+DFLl32GUf8LA0bcwKf3raKx4UfSc4/h3Mdv5a2vv0L75F0efaiBSZ3OpAYd8oYAAMcTSURBVFdxcwZnQSEug0DsjQPY/MV2uhX6MOiQpjUrOwciR700PxOCvnf59j8Ol8tFTEwMTU1NOByHJnv9ZtB12DUX5j4Y5c30ORuOfRBiMn7V0xRsm4vl22uxhVysG/UgY8b/bZ/U/x8FjYEmpm99AS3iRdfDWH1LCQp2dMcYJFFBlqwosg2vv4SUxnfI7P89XePa12UprinAO+aU6D8ndyHnnpcxJbSERRqnL6TijqvJ+vALrIPaL0a5F1XlLgrWV+EqbMJYFyDZp+FAoE7QqYw1YMiykzc0nczcFgn0Zz+aiWvXGgAEXWbKWRfStU92h+f48ax/sMs5kgseHMT6+bNoqCnn5Ktu4Y0rrubBK2/B7NuDFFhAj0IrI9dvRWlWsA0ZFNQBw7n2b9cQ52jhTuU3+DjltaUEG4O8e90Ixme2hL263f0VQRSSxSZeOi2T2YWPM89XwidnTWfCV9GU7p/O/h6L4KB893aCfi85vQZhNFt56aU7qamJ8l1GK0uZcMeXiM0lIlRVZUd5Puv3FLC5tJYd1RF211lRvA4u8hixJ1fT/9hkFn8IXcfUcdwFZ++7ppCrhoKhY9FGJtPr7QWtnk2grpjCUcdj+cd5dLrwAdrD5lMHIqXG0+O1H1jZ6OHUdbt4r08OF28q5OWXbyChvImRC1a366U5EB/tWc8TWzU6eTVOswnkGWMJB6PEYS0YgaAKIQ0xqCKFNeSwhiGso0Q0TGEdc0THdBhSASEBFB3mizpFNjmqX2OUkJt/FJPMkt211FX7uGRcDklOE1arAYdNwWFXiHEYsVkMBw0d+cMqF365ntXrKjE5jZw2JIMTcxOYX9LAe9/tJDsvlrM8P3BF/QsUmHrS+eZZbQybl66eR5KzibOfbEdF8Wdi8/2LEASRXg8dpPhSB4g81JtI0jhM17x0yGMDwSBrP3mM4QXPszruJIbc8EG7456uaqj+CD5XCLcriNsbRDZIdOmbTH1TDcs+mUw34x58zmTqLC5EVUSWL2PEhHtaefAaakvZsOI5woYZoItUbxpN5aoyUmI740xIpe/JJ7Am7GLnq8+QKCUwJuUsQiYrjrDO5qHxnPCXnmiaRiii0fDsOtT6ACl/H4ZnQQmBgkZSbunYKP//hCOZv4+agr8nSlfDjw9C0SLIGgF//QEyD11L5Oegc4+J+LKWs+3zmxj7052s3DWH3HNeJsH5x0n9dppiuGhgS72gd5bfSJZvJjTuwo0DEz4MRLADIRSSLAkd9uUwJOAF3GOHMvTfU4GosbHotddYV1SES1EwnjqZywMBDlwjqhGNtYuKqV9bSXxdiBRNIAuoE3RqrBIluTYSeybQd3gG/eS2A6Qoitx64WQ+n5/C5oUz0YUI0z77kAuki+ncs33BMCEpGTEQpuT196nYtJpct8rO1wcyDrjqqxv4clAjcWoMWQldGXHl/dxU10gEjX9l5XDioLbighZAscgEG4OsKW9qZdRsfPAE3v3uO55YGcNZX7mI71rKJc6eJDpy6GqxUBLwEWNKRgvUkvXFRCRNhxkQUiQuionDlR6LWuYlLVRJxFuJ0pxaK0kSPTO7Y/b4yaoLc9GIFKqKqtgyN7rC91RFDRqAopVmvqj6gLyhafQdPYHKmVHvjCG7rTFvis9CTRDxrVhO+PR6DLZ2eElNQaTe0e3u5npKP9a5yKvYRI9NtVTc+JfDMmgAzu/Unx72Ms5au5k1Qgy3pxRxW48Jh9V2L0JhFZ8/jMcfxuePEAxEdYOCQZVQIEw4oOJqCmBcUE2DAEKMiO6NoDaG0EMaelhHD+uMDOsIKDTMKqOjwgIRdD6Ni1BlFZANIgaDhEEWMcgitbU+Ir4II4emMfW0fijNBtDg9BhWFtWTv7uBfwUGs1C4h/d5gnlPnU3f8x4hpXNf5P1S/Bs8v0z24EA4QxAw/rxQiqg3RCUtDoHVcz8ndvGDjNRLWJ56ATWD/sKtH04lxmzAYTYRYzbjtFqItdpxWp2kOhNITXPiSGt9r8WLv+Tk8m0s73o7w0+7j0D1al774gme2dOf2EWfMzLbQ1LJLhy7d9BrdDLZnXuicjVlkVdI6jsXtXA0ekRje/5iyl7dxpVTp7JctrH6hSdZ1vAtIxPOAcR95xVFEZMiEnduV2pe2Ujdu1vQNf2oRs3PxFGj5vdAxQb48SEomAuJPWDKNOh6AvzG6dcWayyDLnmPjSum0fXHOwi/PJI1xz/DoEGn/abn/bk4psdtrC7tQ5wlk9NzTgAgEAngCrmRRQNOU8eFA40mEx6rlYrsnjQWFSGbTHz70kvslCQ6yzJxRgu7JYnAfsS+UCjCitkFGFZUkaEKCKJOXZKJQGcnnQek0C/jyDx6Zx0zBAGBTQtnoIlhPpz2HlPOvpC8Pm1Fw4S4RMK1dmrnrqRP3aZ925PueZLbzxjHX90NZKR2QhRF7vp+K6olhmVjeuKwRDkIde4g8fbo308u2MXz1TUo5V4AxtmszFtRxnOzt1AjBMBRSXll1JgVDPUERYmBXY7n9RV3sNPn49quxyGKIoGq1Vj2C88FbQ50g4m4xmIsRN3mkReHoP+9BkFsGTp++ngrnupUovWTot6jjNGvYIrLp3DrMci+QSTWpFO600LlTohL3Uq4LsrVUT9aQ8MZc4ntM7HV8xF7psAPRez6YRRqTxvmiSOx9x6Gs/9EDI4EBJeKFB+d6MLNiorvlddx09Z5hCUYfvEdR/TZDYhLZ+WYWCYtXcA/K5LZ2PgZ7ww/E/EwZf0Vg4RikHA6Og7ZbCxqYNGcSrr9rTvHD2q/vIKqatQ1BfD6wrjc0bpPXm8Ib3PdJ09DENY1kJ1kwxEv4w+pBEIqobCGzx8hLcXGbeO7cHpe6xQ/u2Jg9sXD0HWd73fX8t6GdO5YXc9/DK9gmDYBn26kXEzAL9qBJwhHJJ5+ZCmyUcRoNWC0GrDYDFhtCnabgt2u4IxRiHOacNqNSAfxHu2FKdixAnNH0ANeRDwIpoOH45a/fz/DC55jp7EPZae+zvBeI7nyzbf4flf0vVekICEVWup8VQE76JdUwt/G5eGtq6LHsqcxKDb6B6Pfx0GTo4VRTUmDOWHsfTzzfhkNQStbK32kb9uOpoXY9EMxWxYW4sx1I0pxxHZxMfn2G4nNGci/zz0Fd6AOgOEjB5Icvp0vX36Y8oHVGIePYli/1gtMY6cYBItMuDwqNyAnHq3Q/XNw1Kj5PTDzdnBXwFlvQ8/TQTwSHv8vR99h51HXZSQVn1zFoOkXs2T7FPqf+U+spj9W6nd2TCeyY1pnW5hkEyb50LF9RTEwc/IpEPKz7t13oxsliWOSkxl3zTUUbyhg91fvEwxGWLmgiIa1VWRUB8lBYKdFpPa4Tgwclv6LyaFnHjOYYCjMzmVzoobN5+9yVnAKvQdH+SyLf1jD2jlFGL1OAHZ3O4+uXSZiGdafxoQEPvjmazKmehk8egirVi5i685tTB06HBAwKhJvLN/DO9X1FFrh7LCRkzvF86zuQbQbcBpkIiGVs95ftd8VSQghC8bkmciOjTzV+Vg2VqXzRsFU1rqivoBjvF48W6Zi7XERkTu24f76PBy7NmD522okc9Q7pqshmt4ZjNJQhWU/g8bnqcNTk0TvSU3kDehCbUUJub2GEFRvYuuW56jxm7ninLGo7+6htDHKO1oxYzXjzr2d2tJS9K+3UX7FDcSu2NrqOXZ7YToN6+ZQ9dqzUNZI8OU5hNTvqeMR1AQByS9g7JRNIKzy0JtrcAbCxCRbSN68goJU6GtzHvFnF2+0sHzsCZyz8gfmBPIYM/8TZo6ajNP463gtapuifJl4Z8fkWEkSSYqz7C3d3AZbihtZsK6B80dnc/Lg9qUeDgZBEDi+cyLHd06Ev/RnyFfHkRncxa3hEiRPFULARXLMegrVXoTrBSIRHU3V0TUIIrTrPdLQCQsQFkGTBDSDAAYRUZGQTCIGk8zZgF8WWPjtAiTLVuzW47A4YrA210Cy2pR2w2pa8SYkQAqVdHhPO0uqGLDrZeY6z2TCTW/uCzdN6p7K97t0bAYPa+4/DU0L0uCpo97dQL2niWkrC5i1M53rPwtwk/Qj5xoKIQhbjP0I5Z1Mf2sckVAISZZpcjWRJDZxXJKbx26+isfvLcFTvpthWT1pqquioaAcb9hF7ZY4DNt/5MSHB7a5zpxxQ4l5JwlXaT4nDzy7zX6AxL/1IbCrEdfMQpRO/0WaxJ8YR42a3wMmB9iSoPfBBdh+S8THZxF39UxW/Pgsg5Y/QeULSyk97VW6dT14Icg/C/aWipAkmck9uhMJhZENMn3PjD7zvWtE15c7SdNjkAWd0gwL0phMJvT7FYRr9sP5x4/gYwF2LJ0Dgs7n0z9C53yWLFxOfU0jgiThjg2hBOIRRZkGqxljYy1zvptBkwUa6tx4f/TiDfooV5v29dtp0eboH3YBJazzqTHEp5UVOP0a/8rK4JRHBlNY4uKRaRvIjLXwmXoPguSnp9aZ00Yfy1/ynsFisHAKMPT9PgDMqK2mU+E0YBremHsJDTgTQ00hkg6uzW9j63cNomJHkBRMdRX4M3uyvzZv/oZVoCt0Hdif1Owc0nKi/dpIZMyY0YwZEyVn+6eYyFk6n4oigcptGXzy4C7GX3YzevHdiJsa2HLZOJRunbH2GUTMgIlYUruRMPwMEoZHeR1qwEvjloV4Ni3Dv30Lak0DiRPP56UFBVQ0Rb1IgWI3OZU6u/ocubT9Xhgkka9GHM99m5fyRnVXhv30PV8MGkTvuMOX6O8Ijc2FDpMO4s05FNZvq432EfPLSbwAzwztx1k7YuhiHc/TwzrWr9FUDY83TH1jgIamIC53EI87jMcTwucNE/CFkfwq4UCESEBFC2lovgh6k4auQoNZIhYRkX8QFCuQSmcTv+YONKIinA3o+AG/EFV2DkkQNojEspOBQEl1CZUfPIhojkE2x2CwOjFanZjsceQvm01XIUzqsde34s+s3FMJJOMJ2/hp6wqO6zcOszGGtOZEqrG9J+DyuahuqiOy9CvYBMFrF9AraQC6pvGXh95iXXB/j1oM/TKjU2bY40IzOzjhoRaPoKu0ijdu+ytbd/yE+KCEJMgMGj659YPURcLVfrbetwRdFqPq2kYJ0WLAnGknbUw6jjEZeBaWIsf+Op/x/zccNWp+D1iTovWb/ssQRJFhk25lT4/jCH1+BV0+Opml3S+k36mPYrV0HNr5syAkySQMGkr/k9oqyNY3lyiYSZBRJ2Qwfmyn3yRldy+mTBrBp1qIrcvngwBfTv8UXYiAiWjKhQBhpQmvA3jlEyqB0UBRp06sGDGc3d4yAPrH57FrcFdueftjdiQlsic+heN3VPDqdZO5f14+8UYD103qhCJLaJpGTqaDt+8Yw9qdm/lyWQXn2C7lvjNva3VtU9fch1+D8zP60qlwxr7tUihI7IJ39/3vmPkY+szHaDzjEUxJgzD5QwS7nNCqr8INVSg2Oymdsjt8FoIoYOmXxEn9ziUSVvnu7fcpWZeFq66RLtfeRN23HxPZWUpo2jIi7y6jiRdRnQLkxGDIy8KU1x05Jh7v+pVY+w+l+5NfAnD8Mz+xo8rNpSOzWVvcQCejh5SvQRh+/M/+3Pbikd4j6Veyk5t2pjBpXQmnxGzj9cEnHLrhQdBU6QMgMebnp2sXrqhCjpEZmHvkhSHbw+DkGNgG1f7wQY8TJRGHw4jDYST7Z5zni13V5Dd5sauPYPI+jy3lVhpOSMca1hH9KiFfmIg/EhWdC0RVneWQRigSRxN5WFyb6d20Arvgb9P3XnPz7A9302+cgY9OjBrWpY3RsKSAxsQ+Y9q9LofFgcPioDHBCYAcE01EEERxn0FzaVopZkXir2ecREJydJvmdyPFtOb4OTKSsRmceMKNbN42H5NkJaVbXqtjPCEfFllBN8lR8rk7hNSkY9B05MImyhaW4M904PCEEY8Ws/xZOGrU/B6wJkDJ8v/2VexDp8w+hK9fxIrv/8mANc/R9Pwcdk58nAFDzjp04z8wdEEk0kHl5L1Vd/uf3JkJo9sSbX8LnHPCOO5fNp+EvEEECwvxqvVkOLtxxc1TAHjwwQdxNEU9MdKw0biKduE0Grn79ruoL6kmHAiR3CUDk93MGzf9lZ2bi/jo83cBeP2ZJganpJCVnY4sCGiaxsh3x+CVXHSL9GeXuBkJmVtOvLrVNZU17uBfm78m06Rw1/j3YFHUq9HUfxL2U6YS+FcWpkDLBPdC5AzqvygkTtnC6VoSaT1bKleX7c6nfEsy2YPrDrs8x9JvZ1OyLgvR4Kf/uPGYrQ4SR0dLJ2iqimfXKpo2LMS/eT3hnXsI/7AZ7dON+9o3fbyamH7j8Di7saMqmtr+3rIiNB2Oz4gqTGcMHNv2xD8DZ2V2pZsjjgvWrORbdxp1q1bw2aAhP9sY9i2vAcCs/Lxht7rRT2x5EPPkjMPisBwO/rVhD0gCJ6YdvpGkaRqPrt3DBV2S6ey0HNbx15WUN/8XCzwAEQAXyPBcj1TOzTuYt/Q09i65tEgEj6cRn6sen6uBgKeBhdsL+WmnGw9mdjR497U6tkcSS0tARzzkZxYJRKvLR57IxSNYaRQcwJMAbA+nYhNlHvl6PabwUjLjHaheN4rVxs7lS7DFxWOPT8DidBJplnawGmK4+oMP2zwHVfMSdMbS695hbfY15jdSOasIR2n0vdYPs6L3UbTGUaPm94A1Eby1/+2raAWDQWHkyfdSNvBsar6+iQEz/8rq9R+TecYzJCdkHbqDPyIEqN2xjUU9umE0KFgUGbNBwRsKUdXUCNCh0fNbwO0LIAogG4389ea/8dm7Mxg0okVnR5IkxOb0RNt1f6P+/gcQFAWTzUxaj7bhjq69s1E+txHUPWxtqmB5YwMLNwVRvi0kUzFSZxuHEreUOqmKsYbjGd1pFDZLS65XKBLgstkXIANvHP8hoiTRkNeP2PwNyH3OR5QtGO+qIegqIFS/haaqcv7zdfO7EIK3OYb1tiiPQ1VVvn9zPUa7yoRzT21zre1B0zTyV3mIySzn2AujBs3+ECUJR7fhOLoNh/0U80OuGkL1ZVR+8SrhNxaiCxopMSbm3TaO/GoPxXU+KpoCZOyIahGl5fU/rOs5HPSJSWD9+BNIW7CeJR4jo1du55uBeSQqR76KDuVaUTY1HfSYeRsq8QXCWM0GbBYDfTs5MRqiHLzv3tsGQM+EX4fjo2kar1fXk6AJnNv18LMiZxXX8bK7iZfXNTFOM/DiiDwSLR1nmr22ParDlO7XeaZfNtX+EHWBMEvr3cxRg3jDhyeIGYqo+IJBnM4EHM4WL4mhm5ennlqAAEzObNl+0diTefLHb+ma0HjIvoN5F/HVsgY6pyjEGIxogSZO1reyU8ih2CXhV1X8EYEwRtTSMBcIIqby7Ux/pn0RQ2+4iRcuOxd7fDwn3XA7SZ1y8TV6AZWc/m3HV1EUiesWR1y3OAoXlFDx7W46yeKBJfCO4jBw1Kj5PWBLgqALwgEw/LHipOmpXUm7aiarln1AzsIHML0yjGXD7mDoxBuRpD/267GipoA7l0YrYcuSkf7EYPeEmPvBex22+Wrbj2zRt2ExmLEazFgVE3bFgs2497cZh8mCw2jGZjAd0aq80eNjwdrtbN6ej6eyCJMWdZXHx8ZgtZupzrbz8ezP+PB7EV0QMKsqW6yxHA+U33gTMY2NNA1oq6i8P27/+00c89h0ykItIYyuDgVFk9FcA/A2DUJLceFLthCxtU6D3VK1kIpglNcx6fPLOd7n4j/1UQKmJSca+xcEAWNMF4wxXXjsq2ja9dLrejLypa1YrCGmr55HRlwCxroafPXxTLxSwXSYtcYKNi8m0JjI8NMzSOmUd+gGzVAciVT/8C6hNxfACTnYs6LPKDfRRm5iywS/LfFYePM7ti78isEnX3bY/R8Koihi0FxIkoXdfui/dAuXpSXwcJe0I3o/guj4Ejo2hkrrfGx7pTVhev4AJ3deFSWdNhgFFGDokF9HluGmOdsImSTOMB2ZkVTYLBCY4tNYaArRb9FmTrVY+fewLliV1kkQtyzN5+Ng1HtyQoKDsektHiFtcylzaoJ0O4S3R9N07vzoPb7ZGkNYM3DJoHoeOrtF7biL08LemO67M3cwe8FyLIYIJlkjpCVz4bBDa4C5Qzob6EW/ScfSKXc0AAeq4rz6z6eod7u58a57qa7ug15fibexAV9TAz6XC7/bReX27bgbapEVI4rFQl1JMe/feSOJ2Tlk9IjKd9gTWqsj7ygu4NNVX7OxYQP1Wi1BLYDcxUDiLieWMhOehiqmbItnZKQTos2GaLUg2WzNf1sRrTYEo4IgihjS0qLb7HZE469bauPPgj/2rPW/Amvz6sFbA872dUv+mxBEkSGjLqapz0ls/uZuRix9iO1bv8Bw2vN0zvnjij99WbSE+salWG398IUbWdi5DJPXQPf6RIJSkBJbFZKmkeaNpbM7l4gQYbc4nXV7Dr5a3gtdF0CXEXQDAgYEXUHEgCQoSIKC3PyjqCppDUlkuWKQBJ0ghmiBxmDUqNm+ZDZPrfkEgyFAvFnA33ksom7F6/ex0hjL9yPHMUyM0KRqJJ/TflbEXjz5xVLKgkayLSGmXjWOzETnvom1uKGWaz+fyZ5qkR/Lbfy4robz+rVUCh6QfjzTJpl4f8NsPl48ki9VFYu4gCuk70jxuli3bhVrd5UhyQasisS06uhkkJaZQ/eE+WyvTeaGz/1ACU9kVQI5bFpYSGZeL6z2Q4cvdq8uJsbvIif3lMN6/ntROfc9XA+8DcNS6P6vbzs8rtvQ41lhF6n7cSb8ikYNQEQwcpy1hku6jOX6rXt4s6yWOXUuvh/UldjDDCdFfBE4SImEiobo+5Jwdja5WQ5W/HtjKwXsYEOQpqwjM7QPhjohyjmZkHlkxOoKf9SomXNML4rdAW5cW8jXYR8z567nkngnDw7KQW4Oj613+cAIc/t0pldCa+O3yBMlePeKa21UlXuDfFdYi1tVGZzoYOW6+Xy+OYEL+lcSiMDUNSlYjdO44YTTMCtmBEEg0ezCaaxhTF487kAET1DFE9SZnFjF2cMvOeQ9uVxRiYGYmI6ViwPBIIokYbOaseVkQc6hPdoNleXMevHfVOzaSU1RIQB37fg7MeUZWEQbZZE91ChlyKqBXKEH3a09MQpmwoSITTKyrmwlReEySv1BQmU6mseD6vWgeX1oHg8cxPMsJyXR5ccfEJTD02v6X8FRo+b3wF7hKG/1H9Ko2YsYRwLDL3qTLVvOxzLrVjLeO44lPS9jwOSHsBzhau73gDvsRReMLD/zg8NuE4pEaPB7aQr4cAf9uIM+POEAnqAPbziAL+zHEwrgDwfwq9HfATVAMBIkoAYJqQFCWoiwFiSsBYnoIdxCPqK5hsEZNzOibw8GdosOdt9++y0ejwdVDZOR+ei+aygx1HLpmE8ASLt6HijnUNBFpffoTmQObq2Y3GdqlPTYJSaXSwUn0zccB8RyxfBudEqOI7+okYteW45Tkcmwm8iypDB+GLyxpAaTEmkzAfrUbKb6TkefaETa7WZa4UQ+DE1EeGwJGiJ2wQ46uLHQU6nmqsFRNsO3N11Io6+RB76YzrI9VsJVzUVDd6SzcdFyRpx04iGfvW39erJWzGTP2BfQYgT0DBtSdjLG3M7Y+g4jYdS5ba63ftV31N32BHoPO91fnY54kFpmoihSNziXuCXbCIcCGJRfxyvqV0Poopl4RWFcnJ1No3vzj52lvFlWy6BlW/l2YBd62w/NLVG9ESRVZ8b3u7HblahSsEMhGFTx+yPsKo7yOrp3jqVfdixzbRL2DU3854b5hA0Cdp9GpMevF5B4cVx3+i7cyAWbC7m12s3tAw8vw6sqEAZVJ9FkINliZNmJ/fmuqJa7txbzptfNh3PWcUtGEtf3TqdeVUn00cagASjxR1WyH1hTiFORcRgkZpQ3sM2oQzOxn/p6xMZkTuq8hcfO+xuaphF+/11eXprMx2u/5rwBGkaDgRp/DDcd4+DCsUdmMO+F21MP6MTEtK8fBBAIhbCaj+ydik1J4/xH/004GOTlt+5hhn8RPRMmUBmsoDFST56xOxekXcyZw07Bad+vbK2us27tLNZVf0cnVebaR2agHKD8rOs6eiCA5vVSePY5RKqryXrrLTSfl7rXXse/YQNIv698yB8BR42a3wPWpOjvPxivpiP06jWBYNflrPzucQZteIW63d+xc9LT9B8w+dCNf0e4Qx4E8cgEqhRZJtkeQ7L918v2mjx1Mma7mRvObT2xn3766QD4/U0sXdZi1ChqHf6IH6PY4h5u3CWxeFcpi98tRbAHcaYaSO0ciz0Qh9tYz66m3ax2e/jKuJjRwef5x9xC/jmvCBkBj66RKBpYUePCLehQDBDL+J4edF3n3vXf4cNAT4uDh1ao6JnRwVHNtePJtSP4IgjuMN0NAqd07s2VPdMxomJQWq5PMSgkxSSRXyPSO8mFe1MS6QaBLEXEPdfE7kA+GcdlUbupjoYl5Zi6xYKqE9jdhOAJgQ724BCkTm5Ml2Tgz99OZHcJ6ro9BGblE9TmIH3gIH7wyfvO2bRlMRXX3I6WbqTbW9ORD0NXqfPFV8P821n5xcuMmnLrz/g026LYG1VnSdyvFtKjXTPoa7dw8/ZiJq3eyQs9sjgz5eAej3pBo2tNhD1fFh30uNhmUcURl3Ynf3cjBCIIARVfUGXMiI4n3SNFnNnA7KHdmbJiB/9qrCe8Fu45DMOmLhRBimitDNCTshM4KTuBd7eX81hBBY/X1fHyrGqa0Okitj/NdLIYwRvkk5APmquuC4rOMaKRSzsnE6fIXL1lNY6EWl49Nup5E0WR5y+5nL8WbeaFH1by+vIEVF1iYm4F54269Gc/i8qKBkBAljseT4KRCGp56c/q32A0Eko2U+UKMPv8x5EOoVV27y0DmT4gQkZE5JGh97cxaKqefhrL0KHYx49HNJvR/X7k+Disw6MEZN+aNUTq6xGOGjVH8ZvA0hxD9VT/d6/jCGA0mBh12sMUDzqXpq9vpP83F7Jy3Unknv4vEuKOXPTrt4Av7D1io+a3gIbWofLs9u3TKdj9AiYT2G23sFXbRaZvOkt/6g2A+9gLUUtOhpogzvpo5oTuNtLghoadTVxAtPZRwNBEpm0hm7us5+/KDILKdeyq8lDY4OOYroncMqUPlXU1HPvtseiqDT0SQ3ljLAOnu6iwDwFdg0YRmh2Fz2ekEm8yMK+igbVhL0V2gW0Gga0NDaxe4uWjY9rWx2qor+OkeQsxKFbG2OqIcXZCtGRgQ0ZZWUn1ykqAaKbK0mgoxQi4DSKqLBIXmwaxF5Jxfuv02oLnriP4xjwc3Ufs2+bevY7SK65Cj5Ho/M4XKI7D0xLqMeJk5mY9gDx1OgusLbwdHT26skXHmZLIoGGHX4OozBf1oKSaWk8s56TG0c1q5PR1u7huWzGb3H4ezOv4u/HJEAvxFQG+ntibpqYAbncItyeMKAo47AovLSmkuNLNFc0p3+N6JzOu96+roQTg8/mpKivH7rDTNSaGNZP6M2L2ep7T6nFukbim18E5KOVqBKmDbLdLu6dxcdcU/rWhhJf8tehmmSS1fe/aE8M68wQQUTWq/SFq/GHS7CYSTS3Hy9tDdLcbkA/g9/XL7s2bf+tNg6cBb8BHRsLJ/BLk57dNFT8QumRAjISpLa3GVVOPKEnEZyRhjzu8BVKtrwZLxNChQaOrKhu2zmPGorf4rm+YiZslnn5kGYqptRcwsKuA+rffof7td0CWEWQZPRBA6dKiMxQuK8eQ/scYp39vHDVqfg/ICpicUU7NnwxZGb3Qr/2BFT+9RdcljyC8PIzlI//O0PFXIf7OysgHwhfxgR7hpuVv4IuE901aoBEt06qhoyMKEnf2PYduMb9N3Suf34citY5bF+x+l6KiR4hEjJhMQYLBHvTsMZYM+5msrxhNWA1gK3+AlEw3l54VJRAGwyrLd9SyeWsdzKts1Z8pHENNw6nUrIpmGslyDeM6Obh8dBcyesShaRop8Yl8NO4TVuxazbba7XyvdKHW3h+LFmCAR2HJfslGNxaXM7d/Ho8NbQl3Fbn8DF+zA7/afnXGdR/P4sQ9K1ruGxAs8aQ88Cha7/5UfJ4Pmk7na/pS8dQqZB0EQNI0tPO7EfhqJaZ6O1pERZRb3p3AinXoVoHyL5/H1nMoxvhU9lx2EUJAR2qIUP/o81ief+6wP4+YCWdgffcDrD+EEPd6SVtBY9Xsr/BYgkQSBBSnhV5jhpKQ0L4BUR7wAAJp5rYh2H4OK6tH9GLS6h28WlrDJo+fz/rlts97USQSY0zkZTvbPc/lO/YQbgSj/PO/V5sWL6Ps2eeIKAphqxXdYgWLBcFqRbJaka0W4l97BYfXQwCoAUKygRfNZjwmC3VOJxeeOoU7Tj2BfsntK9ruUQBEnlq7hyt7phFram20iKLInQM6cXPfTF7YVMpp2R3XbAOQJZE0m4k0W9vQToNuJdEQ7LBtrC2WWNsv1+xxOoM0NhrZtWsxXbqMbrVv1hcL2Lw1GsoRImGm3nb5fntFRNlGRs8xnHzDpVgcHS+y6oP12PS299jor+S+eyeyJk/AbRHACuf5+nDrQ6+1MWgAgrvyATD17g2igOb1ogeCxF5w/r5jwuXlGPczcv4/4ahR83vBlvSnNGqgWbRv/N+o738qO7++neE/3cO2TR8jnfQUXfP+e4rEoiCiR2qYu+NlEGRAaK6ntfcnCkHz8KbJyT+HXNxRV78IuqBTLpYz5YMpKKKCIin0lLbSNw4ikTiMxjGcdGJL6mda3lkEIyEWlz8AtEx+RoNEXZ2/lUGTkOfguPN7ULKtng3zSnDXRsmVWkSnoqCJioLWpOeYJDO5XQYyrvuxOBqbeBU/PtEUNWg0nY0jejJi/ma8ZpHOMS0DcH6DlzHro4Pl5bntT+7upUs5kEap++qoeuxBuq1cQNxdQ/ZtP3+khRqjSFxI47TSCH2+3EnPJju6Gqa8uJSM3JYwh6FnF0JFa/A9/gk+olwjwQhi81ymBQMH/wAOwIDrbmbnR19BZB0ZTz7aap+mafzw0WfIdTpGr0T2zgQMusyGwGImTmlf8bvC7wVspJvbX5HHKzKrhvfgnA27WdzoYcjybfw4uFsrAnFjIAySwIjMjifgrgYDWxSJ72oaSVYMJCkyyQYZ5QiMnPxvZ9Bty0byBw1FqavDUFKM4vejBPyYAn7MzdlvRXndMF96GSGXm7DHg+rx4GlqInb5Ms7+9B2O79IV21qNGzISualPax7gYMHAaj3MM00NPLO4nuSQzjFOO1d1T6XHfqRfRRK5rTl9eXlFE+ev2Eamq5Yne2cxYmDfQ95LSA3j1m0kKt5DHvtLMXLUAL6buZVvvv2W226NGjUluyv49otZ1HiLsUrxpNrSGXv5mZRu2UFCVgYCOhW7dlOzp5Dijd/x6tULSes6nNxB/SlYs5baPdsRBIkz7r6H9K5ZNEZcOKTWhrEv1MD535xEbXeBiet1/BaBC+OH0fvyv2OytG9UhvcUA5B0991YB7efyBEuK8M27tfRa/qz4ahR83vBmvinNWr2Is6ZzLBL32fTxtmYf7iXLh+eyKrsU8md/Bjx8b+/ts274+5lm+uvDEvIxdhB7HhzfTFTpp/Musql/GdLPLf2+mVu6vZwcqeT+anyJ5oiTYT1MGHCaBYvfYFhYz4mwd6WHL6msq0Y4wfLi2n6OKo8LTkMnHlDfxIyooNgXKqVnL4J7FpTha5DOKRRXdRETbGHgKdFLK+p2k9TtZ/tSyvZnWckrZuZcqvIgKDIOqPGMQu24LVEn5Vpv8nyX5tbuAIndmqdcrpyXSVV1V6E0cexZ88eMuuKEPWoN0eKz8I2oS1JuMYkkoxIiU3gpa4i2t5whRbkvuJZXJfbIgrY9R/vwT8g2FBO05af8O5Yj0XMwP3xdEw9e5L+n38f9PkfCMluxTr8OHxL56B67kWytRhvoihy/IXn7vtfUzUefGsR7yRlM37lHEKaxkqvERURWQ+hCBGaiAMRsiwdGySiKPL5gC48mF/Gq6U1DFy2hW8G5tG3mUBcUBP97m/ZsIk3bCbWFDfw1DHdiNnPy1HqDqLLApdvLtq3LSFUz5KVFxKSTPgEM975EqXmHPz2WLRmT4xgtSLarMhWG5nzf6S0SzdO/+Dddq9TU1X8/gDdLOZ2vUmf33wHti2bucLq4FNPA0/U1OLYIHBZv5aQ1IzxvQCYV1LPO7uqWKH5mBbwMG3DLqx+lTRBolxXCUkCPQSZknCEBiMkRjz4ZYEzmjSO+/AbHjh2JF2SO66+XeWrQxdE5tXWkF60ilOzBiH/RirgQ4ecw7rV91BRZeHBBx9E0oyoYhBRN5Cb3JvzrzwDufn70mNEn33t+k+KhkzLduxm7tsfUbZ9EWXbfkQQrdgTcnFVb2L1jAWk33oxLs1Luqn1sqCwdhUlwTBTcgZw2g/5UNSE6F5CUfgeut//SbvXGi6LfldrX3qRxtg4RLsN0W7HkJyMc8oUCIVQ6+qOhp8OB6+88gqvvPIKRUVFAPTq1Yv777+fE0+MDmoFBQXcfvvtLF68mGAwyAknnMALL7xAcnLHcWG32819993HV199RXV1NQMGDOC5555jyJCWVZ+u6zzwwAO88cYbNDY2MmrUKF555RXy8g5f6+K/DnMs+Or/21fxq6BP3xOI9DyWRQteoeeKf2F+aQir+l9F/+PvxmA8dBbIr4VEs51E88HJo2E9OuFX1S/hnfoljEjqzojEzgdtc6S444Q7uIPWVaF/2PIUVL1OR0Wew2qUGTm66zWous6di3fxmd/NaZ0U/jYul74j04hENF69bgHafmm9h0JWrziKt0Tfs22ZCqos4ghDmiayS9WoM0cv6Gyl9ee00uUDi8AjSYn70nEh+t1b9dpe7ZQY6H0bBYBT0OhybDrDzuzR7nXIOpxqMHHX+G54AgEmzVrKbmcciEa+b5zPdVzNynWbuW53BZZIhKRIiOOcVrqm9aLH2aeQZLeSfNn1h33fByL+qovx/vQ1de98SdINF3R4nCiJvJ4X9cD84I2OU1aq6Wfy4lNhoxpVnxY0PxbDoVNjH8xLp4/dzA3bijlh9U6e7Z7FOalxCIEKQGJ9jYWN768HIBBSefe0FjFGQ1jDaJJ5rGsGteEIC4u2s1yJY1P/axDVINbd+SjFG4lLqKXcGoOxqhKD34/i82EM+DH7/SiRMOVjjznI/UpYbdaO9zc0oMXG8ujQXE6vdnHKlt3MKWtoZdTsxYTMuH3p4PkNXt7YXsFcv4tSXcVvjhoA2/1hYlWNM77/gTMXziL9uRdYuH0bL8YkM27THs5ZvIq7J4wkOdbZpv9Yo4MB8gp2RjK4ttDAHYXLcAoeHEIQpxgiRlaJlQUSjGZSTVYyTGaSTHZiTTEkW5IwyYev0zLvk8/xbhsEsZuRNBOJsWn4fF4uuOwcktPjD9k+vVsuFz/1D/wuD3s2FZI7sDuyIvLshedStG4BWxb2pNzqooEA3+94nbAawhf20RCIGrsbXLv5+2fRhc6WAT2RjR1n+Rm7dgVJwresfZV684CorpExN/ew7/9/CUdk1GRkZPDkk0+Sl5eHrutMnTqV0047jXXr1pGdnc2kSZPo168f8+ZFlT3vu+8+Jk+ezPLlyzvUVrjiiivYvHkz77//PmlpaXzwwQcce+yxbN26lfRmS/Ppp5/m+eefZ+rUqeTk5HDfffdx/PHHs3XrVkymP5aYXYewxEHlpv/2VfxqkGWZMcfeQP3QC1j13UOMWPcS9VunUTf+fnoOu6A5DPTfx4D4znz1l7k8vu5DVhW+zfzyjb+6UdMehObw1/crz0cTbSDIOEPFGMMjUYRE3PJ6zCJ88P77aJsKWTL6FP5i786Ttw7HZIx+Lf2uEJqmY3UqpHVxYjDL5PZPxGCUCPkihAIRgv4IYX8EQRZJyrIjKxJrShr5dLSdent0YrEGNVZrIbQI0GywnJrkpNd3a0kLi5yaEEOFRUDQdL6raMAVVjkjO4Fcp6WVTooO6M0fa6Mu0mVQx5k4sg6R5rbbdhZEDZpmJHrP4b5p3/BGcieIi67UdwCLABpVWLMLgBnxBgb37fWznr91UA8MWX1o+OhdVJcLQ0oyos0CmobzrEmIhpahLyWoc4bBzAMTu+OPhJGEvijNz+nSlTOZ7U3HqHsO+9xnpsTRzWri1HW7uHF7MZs8PiYEPEAMf+1Zz2veTGIaQ8xfVsrp/jBfnzcYAH8wQnKMiYvSoxyUMcEiTikHU89TGNx5AL5Z77OHjfT5z0MMHnpsu+cOBYJ0+xlqx3uhNDUSSUriibVFPNfUCJrOlX0PveLPi7Xy9IgWDoemabhCEYx+H0Ujot6M8Itv02N4f3oM788F1dW8OGs+byZk8PWK7Vzua+Dm48dht1rw+f18+9NyJAGuctg5bfR4FpStZmFtHfVhjQYVmiIKu8MGXEGFJo8Z/74yqxGgjq7iBn4ad3jp3eFwkG3znaR1LuPEYybSdcCIny08anbY6D6qxZNz0g33892LjzP75QfhJPAT4rblL+zbL6CTphi4ut9+5Uwk0N5Zw+b5/VGG9yXzqocwp7aUdom78ELiLrxw33PWvF4a3nuP2hdeRIqLI1wa9eQoWX9SZfhfiCP65CZPbp3S+9hjj/HKK6+wfPlyysrKKCoqYt26dTiapd+nTp1KbGws8+bN49hj234J/X4/X3zxBd988w1jx0bjfw8++CDTp0/nlVde4dFHH0XXdZ599ln+8Y9/cNpppwHw3nvvkZyczNdff8155533s278d4cl/n/GU7M/4hxxjDvvOXYWX0nDd/cwbPZ17Fj+Ek0D/8agURf/V1WJ39g5j7U12zHLJiyG6KAXo3S8Sv01sH7XFtbt2YQrHMSgiTgNjUg0YhAimMQQGL/H74/DIAQJNCnErFiJFhE5fe5M7pp6VqsaSr7mqs49R6cx9JRDr7qC/jBT715KUkjj7ZxMni+qpLOscP+krhiaJ+lrZm7hK0uYi0rLwSxSZ4ZNoSgvRxcFlhFhWUM9/2yIvqupQZ3hF2ZwWmYc/9hQTKk92s+o0hDXZLX2knn8Yd5bshvVIEanlkiEZWs3sbOqmljVSIM1Gkqbkda+UfmEuxLd7+cN1UBhagZO6y/z+iXccB1VD/2Dxg9eAr1FpKx+aj+6zJ627/+/SG+QIWznvZ8caKINXbQiSFZEycYE2ULfeD9j04e1d4oO0dtuYc3wnkxas5M3Smv5XIje+22TTmD+T0uIiw0hJmWxem0l3fb8iBbRCLvDZKe0PNNkixVQ8USioT61Olo/SUrtOO1aMf0yFVmTqwlft+7scEWzgWxBjds2FNGroIoPxrXvlWsPoihil0R+vOBK9k6tOUpLOQR7UhL3XHIufy2v4J8/LOL11Bw+mreGayMeLLLEvbZmgrcfagvWcEWXoRzTTlKWpkWTATxhD8Xeej4s2sS7TVmIHNy7qWnavuv0NNYBIj1GZNBjcPuFL38uuo/sS0qXV9i5YjOd9L/ikq0MHfAMDlMSNsWOzRiHIrcek2w3noVv9SqEQJDw56somnYSluHDSbj66n0p23shiiKi3Y4ejHp+jV274l+/PrrP/v+zyMLPnnFUVeWzzz7D6/UyYsQICgoKohLr+0kzm0xR9cvFixe3a9REIhFUVW3jbTGbzSxevBiAwsJCKisrW7WPiYlh2LBhLFu2rEOjJhgMEgy2sOZdLtfPvdVfB+a4/0mjZi+6ZvVCv+obVq3/DuPSZxk67xY2b3if+HPeIjX593eDTtu9hOeW3QyCAfQwQjQPim7OQ0umHylWlhRQ6/Fg00UeXnIXVUpJ8x4Td3d6iPPG/wVN05i/IA9Vl8lLe5uvnrxnX3tRjiGzU+82RSG9jdGByuI4vInq44dWEA6qpHaJoXuSjY/6tCVjPja+C2mrSnipHc/D45ZYVtd6WCAGqTdFjZcKo8BXYR9f7faBfb+wlFGk/O9LUHUdDXg/W+Hl7iaQAA1QBD4iwkdNgCmeOLeLfpWldFLD5Cgyp/brQTAQ4Jst+bzWvAq9x57C3mI3J1cW0+WYw6sp1RGck8fhnLwILaISrqghXFJF4ydf454zDS0QQjRFw0nD9JXINFAsT0RQvUjhSqSQD4PuI16vRDMMZnDfIy/2GqvIrBjWnSkbC1nYEC1SaDU7uCVR5ip3OtPzwjyuJVPrDmIxythMMjeNaPmubKkpB5KJa1aEVWujkhBS0m8n4GlvaiIYF8czw7tQ/dM2dukqFRaRar/viPrRNI0ZV95O592bcU84CfuiHyi98kpSHnmY2LNbVLOT0lL55yXncM2u3Ty2bD2Pp2WjH+DV/0eJgSTTFk7NaOu1u2nN13zmycWMHzMB6ptNqHMSOyZXl+zawA9vb8bfkIwohRFEFbBgi/n1tKv2hzMplqGTx9A420yqeA69U8cf9PhOFz8MzTkN2649EeYV4Vu+nOLlyxEsFmzjx5F4403UPv88ru++A1GkOd0TJScH76LFiFbr/0uNGvgZRs2mTZsYMWIEgUAAm83GV199Rc+ePUlMTMRqtXLXXXfx+OOPo+s6d999N6qqUlFR0W5fdrudESNG8Mgjj9CjRw+Sk5P5+OOPWbZsGV2a09EqK6OZIAfycpKTk/ftaw9PPPEEDz300JHe3m8HSxyE3BAJRVO8/wchCAJDBpwMA05m06Y5JM68AcsbY1g1/nGGjD60VPmvhXJfA48vuw+jpTtLzvgIRRTxqiEimkbsr8z5Kaqv5ZyXtu/739atksmmc5gy5GwuWHQ2r+W/SH3TEzgtImkSSEKEUKC1tLkWacIR35Yw6a6PZv2YrIf+mmoRbZ8RVLGriRkvbeDCh0e0OS7OauS+8V24PRhhU7mL03bvQRcFzgooXH5MJy7xhKh4dAU6MDc3n8bOo1jiDbDI3nrluyxB4u95CseHZAYZjCyx+okN6gQlHZ8skhwMca3qZWBaAnk5WTidbSeM176ZzWupOYiqitY8AF9cXcKg9GTOOOukQ97z4UKUJYyZKRgzU6if+gmCybHPoAEwRwzEC1OYOPLRNm2n/nQmuvjz1bRFUeST/p05c94PbFQtCKLIKQMmkvf995xTHM/VSXuwpkrYDDI2WcFX18hyr5V+2X2oD0X5YOlxUSmCSH0toqIjGH+bkHsgHMbm8+CKjyPWZOC7SVGj+M7lu3hPd/POljIu63V45NOZtz5E12VzKL78Zo6/8ypCFRUUTj6VyvsfQE5JwT6mtUckt0sub3XJZU9xKW8uXs0bqdlkVpUT31DB+u6DeDJ/O2lmO4MPSEjY4ZfpKpZyYqyOO6LiURs4Kz2XsWntvz8l+ZuZ/mwFisVI1zHVGBSFSEhFkHx06v7remnaQqW4ai3CsmmYjDYslhisVidWaxx2ewIGQzuLl3lFAOQtXULtSy/hmjUb93ezcH83a98hlkGD0AIBlE6dEGUZzeP+f+ulgZ9h1HTr1o3169fT1NTE559/ziWXXMLChQvp2bMnn332Gddccw3PP/88oigyZcoUBg4ceNBaJe+//z6XX3456enpSJLEwIEDmTJlCmvWrPlFN3bPPfdw660tiqIul4vMzP9iiYK9Anz+BrD/+oJafzT06XM8TZ2WsuOzaxny442szP+e7me/iONX0JQ4GHRd58K5/0DTvLx6zNuY5Ogrbhd/m4mgsL61SvRj3Z7imH4jsJrMnLHmAhqEYnra51AbaUnPjMsyctsnM/A0umkorwFBJD2v7btZtjOqZHugB6c9iLLIVc+P5bMn1lBf4WX4aQfnDZmNMkNz4lhoNrC2vInjBkeNKtUdnUgFoG7ul5w5rD/Xje/PhG/WkR8rkefRmZIUx4paN3NyBb4HBjdF2GGWCCgtqfQLR/bA6eh4YP3k+/k8aEvivPJC/jPlNM776Fs2xsTzXlIm74Wh9Js53HbWr5uppgWC+FbMxTxo3AF7BKLupbaQNRdhwYgr5Mah/PyJoiyk4zZGwwySJHN/upmHyuv5RIjHoxrxqGY0QYLm7GVL6UZ8UgYW1U+MLcpHUhsakM2/TfYPQG11LaKuYz6g4OJDg3P45ocN3FtSyXFZcWTYDy54Ofuh5+gy+1N2nXEpk++8CgAlNZWcb76m4IQTKb3mWjrPnIHSqW0YrVNWBo+cn8EjwMyLbiPsCjBzSAbT3Z05ZWM9J1g38Wy/Y3A2L04aNSODLR7u6dt+Ov6B2LxkI6Jk58KHT8Rk/m1D0QeirqorOwp7saNge7v7RTGCJGkkJGpcdeWTrfbJcXGk3HcfKffdRyA/n9rnX8CzeDGWIUPIev21Vseqbg+S/Y9X1ub3whEbNYqi7POiDBo0iFWrVvHcc8/x2muvMWnSJAoKCqitrUWWZZxOJykpKeQehIXduXNnFi5ciNfrxeVykZqayrnnnruvTUpKdJVSVVVFampLOlxVVRX9+/fvsF+j0dgqFPZfh7mZKOmr+39h1EC0ltTgy6axYvHb9Fp4H64Xh1My+RV69Zrwm53zvrUfU1P/E2f1vZ8hCdm/2Xn2oqoxOgv1SxR57eJxpCS2eIIePvtuqkp3sHnnHBKCQ0H+EYCYuOhq0+a0Y3N2PFFaHFFvQmzq4Q2+O1dVU1/hJbNnLF0GtSc61xZdU+x03Y/HoaRaSXt4JH6fi1FzLySrTz/Cmo5JFDEHNfJtIg/7GpCNOkk+nWqLyOoY2F9vB8B+kEH1q4XLuE2wc0LFHv495VREUeTTC08HoKGhkR7ri5B/g7m7/qOZ6AEXcZed32q7gICut2/UaIKRzPAKZmx9lfP739HuMYeDImPrz+O4vsdw3H7RQV3TCIT8ePxuqpuq+XRXCe9oOZwS2YMsRT1uapMbyfrzScCHQkN1NTJgS2x9rdvrvfh1Hc0kUeIOHtSomffS+3T6+FV2jDuV0x6/s9U+JT2drLfepPiSSyk8+xzyFsxHtHTsOZUbPBBr443Bx7OjqZrrNyxltieD3otWcU58kEd6j6NBtxBvOLQa8F44k23sDlnJX7eaPiMPNG5/WzhtNwHzufaaS9Dx4vE24PM14fO58Ps8+P0+1qypo6qy5eVXsxSk4hCbzx6GYDEiWIxICXF0/uebHZYN0dxuRNtRT83PhqZprbgrAAkJUfb+vHnzqK6u5tRTDx0bt1qtWK1WGhoamDNnDk8//TQAOTk5pKSkMHfu3H1GjMvlYsWKFVxzzTW/9PJ/P+zz1Pzv8mragyCKDBt7BWV5Y2n67Aq6f3YmS7ZfydBTH8FwGCmyR4Il1bv4esszpMRP5MEBB692/Wuhuik6oOYlmlsZNHsR8DWL41l/BO+xjD3+ucMutLg388jqbN841zSNb55ZT0OlFxDwu0PIishJV/dp9/jDhahIWJVYhp8Z5asZRfjh9AFomsaeGh9ry5vYVO8lXwuw26NSZImSjPdHwa7ddM1r7S3SNI0Xp//AE7ZEJlQU8dq5pyAdEPffS+BM+YUk4fbQ9PnnSEm52Ef3b7Vd0CX0Djw1Z436jKU/9cZe/z7vrXZhs+RgNNgxy3YsigOLwYbVYMNhdOBQHBg7CC33DRTTVwoA/dvdL4giZpMVs8lKYmwKD2X35UFNQxBbpC1Utw/J+ss9jpqqUrh1O7FJicQltxgw7ppaYgFnYmtPzRs7KgiZJdB0vimuI82i0MnZ9vNZ+vEMEl98kp39xzD55Sfa9TBahw4l+e/3UPXY4xSedTY5M6Z36Mk3ugKEc6Phrm4xSfww9nSW1hRy6+ZSPmrM5qPF2wA7xyQd/rvSd/Q41n6zhuJtpfT5nXVDvR4fgi6SlBzlkLW3tG1sepjSkha+m+Piv+BZugTBF0T3B9HLGhHml+I+dxWxvdtfHKpNTUiO9oX7/j/giIyae+65hxNPPJGsrCzcbjcfffQRCxYsYM6cOQC888479OjRg8TERJYtW8ZNN93ELbfcQrdu3fb1MXHiRM444wyuvz6qQTFnzhx0Xadbt27s2rWLO+64g+7du3PZZdECZoIgcPPNN/Poo4+Sl5e3L6U7LS1tX8HAPwUs+3lq/h8iPbUrydfOZfnMRxi27kUKin/CfPabZLVD/vs58EaC3LDgTkQ5hg8nPvyr9NkedF1nzZ4GVhbVc+nIbOq8Ud5LgqV9w8MZn0lkezec9uMYcvJNBw3FHohIKDrRvnPH4n1CyYIoNE8WOlpEJxLWUMwykhw1fiZc1B1Z+W0yzkRRJCfZRk6yjf2d/W5/mEcXFfCh6CciRSeyCUUNnLbiK/rE2smIsbO9toFZAZUtyelcXFrAE1NORTK09TpUVEfDeckxv+5Ks+GLHwjtXkf8NX9vs08XNPZXoN4fZtlMiTKCzNAyFNcnyK4oH0onGinyEi01sBdhZAJYCAlWwoIFVbSgiVZGGRWkSPcjumbhgHdF9QRQDlE081CY/eZUEl56Dqvfzx7FyMKJxxE/YQJjJ5+It6aOWCD+AEG8ewd0YsnCrdRLOu/63Uxd2cSKkT3J2q+swbpZP2F+9F72dO7Lie++gCR1/J7HXXQRga3baPrqK0ouvYxO701t9zizN4w/rnW4emRiDsuPyeGb0s3csGEZncVySioiuOKycJg7FvLbi5WzZwFJDDmhLd/st4bP60Xi4As5vy/A/nkzWRc+ABe2/F/6xT9x3/s2poSOqRThigrMA/r/wqv98+KIRr/q6mouvvhiKioqiImJoW/fvsyZM4fjjjsOgB07dnDPPfdQX19PdnY29957L7fcckurPvaGp/aiqamJe+65h9LSUuLi4jjzzDN57LHHMOw34N155514vV6uvPJKGhsbGT16NLNnz/7zaNQAmGIA4X86A+pQkGUDo057mO3dJ2H95iri357A8lH3M+yYa9oM4EeKyxf+i5B/Nw+Oe4Nk82+3Simp93PWq8sA6JHqoNEb5aDEdrCCjolP5fhTv/tZ5+o7IYOGKh9aWEPTdHRN3/cbAEEgrYuTYy9rW3zy94TdbOCpSd25vNzFiZsKiA/rDAvWssxs5ytjLFpYwmiOpb+3krdFPydd1DH/oaKuATCSlvDLJu/9ofr8VD/9OHJ6DxKuby3EF2iqJmSsxGrK6aA1XDr6g31/R7QITUEXrpALd9CFL+zBH/HgD7kJRbyEIh4iEQ8R1YOmetBVD4LqZZi+DF1o/GX34Q0jOX/Zux1YtRKr30/VP/+Da9Zsus+aAbNmsO7ee/D37kfQYMB6AMk03WZiw8kDqfQF6b9iG7okYN3Pw7Z92Xoid91CbUo2Ez5+87DSytOeeJxIdTXeJUvY/ZczyZ72MaLSMuFHwiFsPh13XPt1o05O7cY/5k6hFvhXNfxYsoD3z1jU4fk0TWPDooVsX2hH6reR10uWYqm0YDfYWVaxjGOzjuX8Hud32F7X9cPith0Mfr8fWTyEUeNXMZk7zloK11ajCzrGhI7T+sNlZcSc8usrp/9ZcERGzVtvvXXQ/U8++SRPPvnkQY/Zq0a8F+eccw7nnHPOQdsIgsDDDz/Mww//divw3xyiFFUV/n8WfmoP3buNxnv9UjZ+fgvDF/2dtbu+J/vc14lz/jyuUaW/iS2ln9M361zOyh5y6Aa/AAn2lkGpyRfGFYgAIk8sLGdizxy6dHL+audKzo7hnHt+2/v5NdEtzcHANRKLbRollmQessRxWe94yqpqSE1NwWQ5tNZLlcsNZiOpyYfHCTocVD74DJqrhvRnn0c8wIOwdu0FIOgkdTv+sPqSRZl4cxzx5iMzuhbP7kya4ZdNihG/huR0/qI+pMZGdg4dyWmTT4TJJ1JfW8fyaZ+R8+Jz5K1dSb0zrkNvosMgI0Q0YoI68eboonPPll3UX3s1fnscwz9+G4v98Mm3WW+9SelNN+OeM4f80WPIevNNzH2jodOG6mJEHcyJ7Y8JoiCRaVQoadZncSpRDtcDc6cwKmMSk7pd1ur42VOnUbgiBWdmHSX9/Hyx8wuSrclRVd9gA6sqV3Vo1Kxo9HDauqgg5FUZiTx0kErsB0MwFMRwiMzXQFAnxtnxMZG6GnS7iNhBP6rLheZ2/78tkQBHaz/9vrD8b2vVHAmslhiGX/w2a1ZMIvfHO4m8PIIVqSPQJSO6pKDLCkjG6I+sIMhGkE2IsoK477cRSTbxZvlyBCJc1PW3X52YhAjD4taxur4XRXVerPulOte7Oq4m/P8Fn57cm53lbq5dV8i/g3VcZEgnp3PHXpADUeXzYxYCByUadwQtGEZHQFSkfatq1w/Lcc34GOu4M7GNaMs18uvRWls7Vj6CLFiQRCuSZEWSrUiSBdlgw+LMIrH7OPSQH10EUT549s+B0HWdsKxjMPx875MeCqKFQIo/tGT/waA2NJCftZ86bUI8x1/zN2YuXkxiYQE1gwa3aXPXil18U+ciW5DQFYHO5uiEWrWngsLL/oooG+j1wTvEJh35tWU89yx1706l+umnKTrnHGIvupCUe++lsXIPANak9lWrRVHkun6Xc/fKVwFYUFvK3XP+wszKfOZXbufYvEtaGWd71jowO5s4/+8X8diKx4joEco8ZVg1DUSRm3I79h7W+8MY1tUhVQfYfdbPzyoKhUMIBp2amhocDke7iSyRsIBR6dioUesb0B0dT9vhsjKAo0bNUfxO+B8X4Ps5GDTsPKo7j6Rw+j3Y3GXIahBZCyFrYWQthEENoWhhDHoYRQth0NU2fczPiWYTvbH0Pk48+5vf5DqLN3zIN/PvYbrdSkWyzMkxsXS3Xc5zP7a4x+MOUyTvjwBV9bNgYW9incMZOPDDX61fURTpnhHDtXVJXF9fzbZKN4M6HX4af3UwQrxw+CUJAEKl1ZTf8xj+NfNAU6NGsMGEnJxNuHQ7clIOaU/f2aadHgqS6puCW9hKWK8jKJSi6n403YemBdCkIIR18MHYThvZ9WUe5almRFVH0gQkXUDWJCRkJGREDEiCgiyakCRL1CiS7QiSCU0UMIhtvRia140gSmA0HTQEGyktAASk2PbDMYeLGI8bKbb15yFJEqdO+6Dd4wsafUz1ukGB9ZKOw6fxf+ydd3gcxf2H3y3X73SnXixbcpF7L+BCswFjA8aUECD0EhIIIaEkgdCTEAj5BUKAEEPoJQQIHYMxGAPuvfcmW83q19uW3x8nyxYqVrEs2ez7PPfobndmdnZ0t/vZmW95e+pAaitrWHf51TjjEbJfeY2s3u0Papl6zdW4Jp9G4dXXUPPa6/i/mkfJT04jA3CkN5+KY/qAm3CZk1laPI/NNTtYUJGYTalRFE58fQT/mf5v+qWfyOrvZqPF7eQMrEYQBG4ZeQsTsifg/fYv+Ks2ERcELu7d/AxTuDyEVJ6wnTvd07SoWb70GuJRjST7NMxmDxabB4s1GbszBZvTg8lkIaCVQxSeeeYZAHr1slJW5kWSNGRZR5YhErFgbiHNhVrjA3fz1xlD1Bii5uhiTzWWn5ogI60XGde27saqairRWIR4PEIsHqGiYhMsScQjmiB0TgTNx/57Dq9F9uJ0u5gWCKILAv9zwddb/4Y5cxLR/TN45KSeR3TpqbOJRvcDUFPbdFK8jvJNaS1mSacgo21PtuWaTlos0qqymqJS8fjL1Lz+LLquk3TuFcgZqaj+IPHiUqKbVmEZMJZe/34COanxTavmyf+QVHUWHuFEzClxRIeAZBOQnDKi04Qpvxd7yj5jr/IMktlGwCFjjmnkO85AUf2oahhVDaFqEVQ9hqrHiep+Qmo1iqaiqhqKoqPVGU/bKxsGC1VL9iLOGoUgKOi6hCbY0LCji3YQ7eiSA112gOwksDsRs6jkH+8QLPYgOh1ISS6kJCdikhPZ40L0JCEnu5A8SYjNGIu7g37698iiKqbwxvYy3v1mN/16JDE+LwWzJJDvsZPlMJNpt+A2S7gtMuhwsmLivuF5DExxoESiLLr0OjK8FTie/Tf5w/u35V/cJOa8PPrO+4r9f/wjtf95i4z/exMAZzMzNZAQ0Kf0/Qmn9D24bFTi3cZZH1xERIcS/24stU6W/BdSe5dx5pUJb74kcxKTe05GnDkYdeWb6EEv8ojLmj3OhPwULh6TS4rTzNV9m14O8wUT9jxh38Im9+uaxNhxdtavOxNZziAYDFJWFiQWszB4sEQ8rhKPKzidKsOGn9JsX/SaIEJy8wIsXlyMYLUipRw5m7RjDUPUHE3sKVC5rat7cUwjiRJ2qwOsiR/2i1/djEvTOM/Rh5kjf9rqdp7430X8x7cVpw6zTvk/nPZ0bLYUrFYPFou7/ql5ycrneC2yl1+ljOOKU/+IVVUg6ueWmB9/zEvJ1y/RI3A1eWeVdMr5dhZ2ez6nnboRQTjyl4D93ggfiVHOiptIsrUtrkqlKJOmKYctp/hDFF5xM7GtS7GOnEzOY/dh6ZV92HoHUIsLCVXl4UjbiGCSUaoixGsdRLUkVN0FmOGbSkK9S5HynIiSSNxiJkseSM+Tn2/dMeIx/vjwnwENhxhk/IkNl2f0eBRBUIhkXgEpvSEagGgAIRaAeACUIIISRIhVYLUk4iHpkQi1/3kWDjdGUmK2SjBZESw2BIsNTZaxRaO8FdG5YeEGzEsrEGtj7N3rY97iomabsgLLgPPm763f1rffNB75ZV8GnTSmVWPRGkRRJPuBB3Cfdx67r74KMaaw+ubree2eX3DbqIswiYd/aMlx9ydZFqhRdJ5b8w+UsnTGeKZxzS0/qffIWn3qeVgrC0EAUVPQBJHUWReQdUrTs03Zbht/vXhEk/sOoATzkB2FDbdFPOSk3kUsWos38C022yJsNh+1tYlrVywmkZ0d4cc/btkOtQHeCGKf5m0PY8XFmHr06LBR87GMIWqOJoZNzRFlf9VW3g7u5Kfuofz8wv+2qe7GwF7CokAYuHBhw6Bqoq5j1cGmQ5UkMFIzcf05/26wPJBW9zItWEGmMh/hCMfcORpIUud4D962YDtRu8DGSJysr9fw39xcTi1o3bJJpcVK30jLy09KlZfdl1yHUrqdjLseIfWa89vcx+Cn8xDIxX3DJYieQ5ZjdB09FkQtKiK8YAW12kpMamLJM2LSKI1tpeTpn5OV2R+LMwmzMxlzUgpmVwomZzImhwfJYkeQZaL+A16eIkHNRTyjYS4u0ZMQOULeOCxnX9Nif03AoL8e/KyFIyhVPtRaP6r3kJcvgOYPoAaCaIEgWiiIFgyih0OEQgGWDR3Jjn4DOSs1iS1ZIfbXpdZoiZQMO31T7Wwq9BIMJbz9ZFnmhJlNZwo/lLmv/QfH0/8g7HARcziIO51oLheCDqnnnoMlyYXd5cJut+F0OUlKTcU+ahSWt94mfuGF9N5UzqpnHmTC9Hf4x2l/ZWJ6/mGP+deT/sB/N79CVaSWtY5d9OtbjM2RSNOhqSrWyj2EC07AOmo00coqLF+9hRY9/Di0xIkTX6e8eCPRSC2xSC2Vte+BEGXYiYl4WWsWO6gKLyIabRhTx7srj3eeeI3ew9MZdMKJOFwtL9UKPgUppfky8eISTDnNz279EDBEzdHElvKDjVNzpNF1nefn341N07li8l/aXD+qq5xnTufqE35DIFhBOOYjHPUTjgcJxwNElBDheBhfzMdFY3/VvL1DuJYYDjovzuuxxesri5hnT4iAXa7E0+Jjm4taLWpqLTY8/ppm92uaRuE1v0Qp20XO/z2Ne3rzU/XNoUdCBHcnY8+uaChoAAQBweJE7jsQV9+BCJ8/i6XOhd4Vs+CzxvC7F7Li3eZnNgBEQUMWNZKSMyApidGW7bhdDSPYCk43ui6ih5o/32bbt1kx51oht/VeYqt3VXF34T4+zu3BuIJ0QoPyeGdLGZcNzma3N4Rdlnh4wU5W7q7motG5VIaivDt3F/++fAyvryti+eZKLtn6JWdccAJnXnV9q44ZWrqMXG8t+0+djODzIwb89F60ALMSh+++ri8XqXtVAhGTGWs8ITJ2XjgD88l9iVX/hxs/u4TkpOHYzUk4TC6SzC5uGHgeJ2UWNDjmiXnnc2Le+UTVKGNfH0tm8sEgkEooiqirCBYLQx+6hV2vzyb61VvYenTM286TmoMn9aCYmPvhN2j6wSSgsUjiYfZXv/wTfl8Mb7Wf/SU7qdm7j/IdJpa+Y2bZ/5aR2ruUjN4ObE4rdpcDm9OOw+3G7vJgtzsRAhpySvMG2fHiYmwjW55VOt4xRM3RxJ4CEW/CmLEVU6kGzbO2dBn/DWxngjUDZ3J+m+tHdQ2raKZ/v+kd6ocQrSUuNI4dcu+XW9kcjmBGwCKKmAWwCALZMbi1RyqmFBuWPp2TFbg96LpOaWkpPp8PVVUZMqTtQRFLasPcX1kOZhFbTGeyZma2NU4PuXWSr8Ifpcbpgs9XsGblFgY/fAdmd0ObHGV/FbHty/Fc9at2CRqAyJdzUPU0HGcePhheXAtjIjGjNe7szXz+3ilY7HF+8cwsYv4qYr4qot4q4sFa4qEg8UgINR5DiUZQohHi0Sg125ZxWo+tkNowwrIgSWiCAyFU267zaCvVoTrvvLqVCbtJ4uphdRF7UxLj/K+zh9aXv++bxFL5b2ZvZOfWKs7evZiTJw/gzKuatz/5PoLPy44Ro7ngsT832O7z+fEHAgRrfQR9PiLhCJFAgFhNLUpNDUptLXJqCufe8nPOBa4K/ZhbFv6NYv9eKgK7KVMCaPFSaqNeTpradKgPfyixZJfkOGiDsu1vLyMB0s71KOEINbOexQ442iAOW4Mm1CCRVf85Gq1C0TxY7Q6sdgfpWcn0G3wwOWdF8R7WL1zJ3vVWNn/tQlcPzPyG6l6lyPEgp+gCUbH55ad4cTFJ5xy5ZLDHIoaoOZrYUwEdwrXg6Jhr5g+dVHNCEEx05berflTXsEgd91aSo+VEpcazEP+WwuCEvIBGXFeIAxU2Eaxw1sc7yIzq2MdmIrnMmLId2IcfPhpqZ1JdXc1zzz1X/7mtokbXdX7+3TZCzsSMVlYMLHVXlxNSW2csvLc68WRrtffE9MnzbFo0F+fNt9P3+gvqbQQkjxsEsUM2A4GVPsy2KObBh8/KHNND+G1xvnz/QkTRislTTLw2HWtaD6xprfMw2XxbP1RNQHJlNdqnCU70iLfN59AeompixmnGvmLK+h3++zYmx81/3WaKtu1n2p6VnDHYybm3/rxNx5S9XqJZjW2dkpJcJCW5IKd1dlBZ9mTePbNhFvWhr46hsHwuDy+x4La4SbYkk2JLIdWWSrotnaqKxLimJh00mo3O/QQ70OuVVyh8ey72Oo8p2dm8m/6Kc6/BsmctqsmGZrajW2zoVgdY7Qh2B4LDiUVyIo6chmCxgARC6n50BCpK1mF3ZuCr3gWW5n8H6T3ymfLjfKgL2RaLhgl4awj6agj5/IQDQbxbfLAQePwV1vzrU8w/vprBd91Q38aBGDXmH7DnExii5uhyaFJLQ9R0iJ5pAzlTTuWViuWM3PQ2Iwe3HMDxl69OZI/ixyyIWBEpEjWsUsfsYIqev5uM0DL22xrmYFHr8hf1RWbhjMST78vL9nJXsBq7opM7MoP40v2EViQ8kJDFLhc1ru9FkX3qqaf4xS9+0eq0Ds8uLmSZ82DMnt1Ogd0k7C8e8lXzt9lV5CsiAonUl7XoVEs6Fh0GY+LafpmkOxL/j8FXXUzmpVPZc/dDxP/vHla9/V/yH3mQ1DGDkGxmBHsy8ZL2GWbHN64iGu5D8iR/q8pLgQjYJBRxBwg6hCzk5/+yjUfViWkStiYCpumiCyF6dERNReig3UhRRYDc9JbF5vkFmST19ZPxwL1snz6Dmfc91OZj2ry1RAd1TsRrQY+hqDHe2vpWi+V6ph1cFpKDtURPv5SUYX1J6teDdV+dg23Zp6y6+CaGvfA3LE24bJv2bSGa3R+5/2AIBiEUhFAAgn6o3o8U8iGGKjHTCyk5DxGwniwTt29m3ZYLALBmQaB0UKvPzWyxkZJhI+UQ7y/tJI2tfoVYSRnC3P8R3rCxQR2lKmHaIKV2zO3/WMcQNUeTA/mfDLfuI8Jdp/+DX8++kiuX/xH7sj9g1YXEcg+Jv1ZBxCyIWJBYrAeZINnJs6YT1WL00hROH9z6afTvo4SD5Bb/k309rGxyVrDloysRMCEIZsLYwXkVfrz8ftUHmEWBT4JpgIP3vgsSjzc0hBWtXb8UeWhS2mHDhrF+/XpqampIbUWwt81lPv4QrQVAUnXscZ2QSSAjojNRsvKxFMWtClQKGlZdQAIyBJGhooxP1VhsilOxrYS/j+0DQFzTSRszkJTP32DnCx8iPvs4ZVdczL5TL2Dwo79FtDhQ/a0TJd8n+OabiJxGjbCN2q9LkaxJiDY3ss2FZHdjqnvJFjuCKDJ4Q4DyHmeT9/NXW32M7/58A77qWiw2C7FojFxNRtGbFoe65IKYr13n0lYm9koheWMtNSaBsRt2MCoEZzsdXDA4u0mBs3jOV6T+4QF2TDqV8/765zblLTuAw+/D34Jha3sJKwmBlukayH+n/4uqcBUV4Qoqw5XURGqoidaw+LsN9KgYxLArE8uMalxBjnqJhkKUzF2KKclJn3t+SdmnI3A892d2jR9HsPcYBIcLwelCdCUhuZOQY37kUyYz5L6mZ6lq3p1L2b23knPLeGzDE/Y9FXdfj+aqxXFGCtFoLRu+20y4egRc3mQTrUIURQbdcTUAq8fMRrQ3dO3WI4lQCKK9bcEhjzcMUXM0OZCp2/CAOiJkZA3ntSuXMXfRI5TX7CCqxYiqcWJanKimENUP/FWZgpvbTnmUvLzDLzm0hsCOzXiAbVlZIAXQ1SCaHgPiCGgMVLdTLaXwgdeNgoQPBxmKl6S4mMiGeAhyctfnMLPZDl4I169fD0BlZWWrRM2/1hZxIE/fU2mZXDgyhys+Wc/XVoWP9SgTIxJvzRjebP2ZH61lnUXjrhW7wQWKmpjpEkWRgp9eQPSSs9h4z+OYv3qbzad9iTkWRDefRKDSh9luQbaaWnXDjQbCBNUzcEqzca9oOoniATQEopiwSXEipmQ0VQVBOOxxtr37d5atTcSjcZkD+GMyedkamt70cpluSkKIH52ZmoIebjb3GEWNP8onG0r4JOTjL0qAh5sQOGuWLMfy2zvYO3QE059+olE29dagxOM4QkHMyUc+ZsqKqj0AXDLkZlJtqaTaUulPw3g5ypdvoOpi/f9MjcbQBRnb4o/wLv6ovlx44kx6vPAWJX96BEGJQXkx7A0iRIOI8SCCruMc2nwsHqUuCavpELsck56MrGYx+IQZAKz9+F3omINVA6R4GN3RUNRo4TpRYzNEjcHRwlb3xGJ4QB0xJJOFaac+eNSPq3gTFzLNpOEQz+Wkc+5psL+phA1zPj6ZvZNO5NRpj4EOWkwFRUOwdf3PUJZlbr31Vqqrq/n444+JxWL06tXr8BWBR07rz9Vlfnp4bGS6EwLtpkE5JG3bT0jTuHX499b4P70Dlv8brvwA+k7m9kE9eG5rKZvFOJIqkO1qKPIsSXZGP3UvFasvYffvHsC8dzUiPan9v7UAaOgoqKiChipqqKKOJupoEvV/dRmEiE4GDqJX30Ek8z7iwVqUsBclWIsWCaBGfGgRP1o0gBYNEPFWsW9fIdbUcbz74APERQl0DVHXEQFRAEUHCdBEEVVI3Dwn97mKAosJe5afmp0R7HIlsvRxk2Onm5IQo6Wt/j8dCZJdFq6c0JsroUmBM3HtCh7+198AOO1fz2BpZ+LgqsoqRF3H1sHUDk2xonI7ACemFzRbRg0KCHat/rPZaafv/PkE9+0n7g0Q9wWofugedFUhc9IIMj9rehlLjcaQLC3lY6oBUUb0HFzClQQT6iHRz2NRHdlyZGLHRKq8mGJ+gutXs/Ly2xDdbmS3G7kskfJDsBqixuBoIZnA4jaWn44DFF81OiCYw5ilVk6vi1Fi0hesWzGWEeMvRTJ1LDP5kSYlJYWUlBRuu+22NtWzW2RGfy8VwqS+qUzq28zNbHkiMe6eV35G1fVLObUgrd7lW9O0ZmdD0kcV8NWPL6Vm20CmnD4SQdNRIwpaTEGNiugxFT2mJlIbqDqiArKqI6gCajCOqMImqYi1Hyzht7/9LVZ3y3ZMi+d8ysJ9y5kQ1IhLMmkWmYyMDGLRKLF4nHg8TjyuEIpGCXGwzxFRQYtkE9jjxiSZiOsQl5vJC2Z2I2jtW0o7EjQQON4QM7/7gof/9X8ccJEqnjwN2+iT8Vx0Lq6zJiG2YcamuiIh/J3pR17UbKnZDcAvFzyM0+zGaXIljIWtbpTd1SSvSCXZm4OS2XAWzJaRjC3j4He19r4oQlrL34OWBA2AUlWNYHU1+N6qQhxZOVhPjUs4jpCz49bTp2EGHEXroWg9UXtqInCjGkWRzOBwHbaN4xlD1Bxt7MnGTM1xgBaoRJEFBEHHYm08vR4Oetm56UsEQcKZlEVe//HkpP+W0poHqa1eB1x69DvdHYj4OLD+9r56Eqd8by2upeWdaDjGrqKtOFOyGHDWyFYfUtM0nnzySbzexA2uT1afVtWrCSS8sRZvTzwBL1dXsMSfQrTsIqbbdtLXoSHbLNhdbkKVlQiCwMXKRJyqheBJDgrOHokoihTfNQcpr1/TB7G6EbS25brqDNTyYhwvXsW3kRV89LOpfB4/m5DFysgNyxi7bgGhhR8TtyejjzyFjFuuI3t0Yjlm5XeL2DdvPqLDgex0YLI7MDudWFwOfBs20hNwpx95w9Vz8iaxpWoDkXgtvnARihJEV/0IeoQhpSfTx/ujxKxapb3ZNuLBCKZ4kHBtDcVzliDbrbiH9EFXVCwpSYhy6wScWluNaP9eWAe7iN3vRFM1RElEU01YnXrTDbQBJRLFHKmt/xxKzWfMws8AWPv5TpZ+uJOhHkPUGBxNjKSWxwVasJqglLhg2myNRc3aJS8SFJ5OfPDB1s3jkKUMBLOGKB570YePGHsP5pr6SJvIr3omnpp/vnEPcV3n13mZDHbakJpw2X7tuXeJ6SHOmHrBYQ9TWlrK7t272bJlC6WlpcTjCU+s8ePHM23atGbrrV+/nl27dmGxWNhSuA8AkyjiU8tYn70bWashCqRpNQQCOhaLpX52KTk5mVhYR6wWcCwIUjO0gpQsFzp2xJoNTR/Q6kHED7oOXRTaPr5jM8IbMzHrCW+8nRljETNOIBWB/UNG8vDMK4mXbWfyisWcufRLKq/4hGXTzuGku+6k+g9/ZMC+PQTsDmyRMJJ2cLnnwMRERnZjV/aOcl7PUZzX81+NtoeVGNt8pdzz5v3c8qGbnkXz2PDgDiw5WVgyUkkeOQBXfsKNXFMUdARsCz/EtzCRCPfAlVlHQBNNaJIJ191/ovdPmv/OaD4voqOhqHGOzkb+VqF6QyEpQ3uhY8Hu6rioEWWZYL8TESuKkcJepNET6/eFwhDXZTRVR5KNNAkGRwt7KoTbHkHUoHshhGsJSg5Aw+ZsPL0ei9egaMkU9P4727c9CkItcb0coqmk9hh79DvcXehzGpz/Lz5bt487Rp6NKCYuvh+U1wLwaYWX54fkMyPD06DavE8WU1SzjZH9JzJ4dDOzHnWoqsqsWbPqP7tcLvLz89m+fTvhcLjFuh9++CGK0jCvUlzTsIuZDLWPYFSPCZj7DaDim+X06dOHq666qlEb2+euxfaVD5PVjFab+K2L+SPr9+8reo2tWx9k6NCn8Ng8CGjoUT+CtXEQx84mtnIh0seXI5Ho58IRv+S2C37XqNzWoj74Tp1CqMZH8RcfkPu/Nymf/RG5QMWjf+WU889F0zTC4QgBn4+gP0DI58fqdJDkPnrnZZPNjEjJ48ObX2TOB6ci6iq89TQKoADV9lRGrloAgMXtpGDlKjZNPA1BU1Dsydi8RQTzRmE75TTixSVY5/0X318ehJZEjb8W0d3wGtDj1OEUfj0f36cbMGW7EQQZZ3LH446LssTYT15ucl9GXmKGZv9uHzkFng4f61jFEDVHG3sK1O49fDmDbo0QqQZzGLDgaCLmkKr4QXfSZ9BJ9Bn0ydHvYHdFNsPIy5g+suHmV4f15pm95Sz1Bsk4JMN0NBzjnVc/YUfJelJsuZx32eHzDa1atar+/b333ossy2iaxhNPPMHatWvZtWsXY8aMYeTIkXg8ngZ13W43VVUHl4cdDgcWi4Xq6mr6bO2Dd+t+hg5dQwUNPcYORanLj2R12QhtLQZATzlot1Fa+j8KFslkfXcwpMDWr5Yw8JypDdpZv349e/bs4bs9xRQMP5nrTx7ULrfq5oh8+ALW1bfXf140+Domzmw6Ou+AXE/du3Q44Q7KrrucxQ/9EUSRmeclItiKoojDYcfhsEPrc4t2Cstfv5F+1RUUzpjOlIf/Snh/FRt/9QfMhQ1ju5gcVkasTcwerh43GQDzqLEMuedGAFacX4RY3nJKDC3gw9SrYbRoi8NBNCOOrcLG/j2J75PF2fxS2OJNK7l34b3ImLAKNuyiA7vkwCE5cJqc5NX0YZx9JBanCYvTjMVlwuq2JF7JFkx2E7akxAyw1fHDTtpiiJqjjS0FStZ0dS8MOohQcDqRomVAHJe7sQWgpgWA5i9iHUGLqsQKfYh2GXPu8bF+PjXNzdS0huP47ZzlfLtoHgoR+mYP4+Krz2nVTX3UqFHMnj0bXdcpLCykb9++iKLIr3/9az766CPWrVvH/PnzmT9/PpC4GUuShCRJmEwmUlJSEASBqqoqCgoKOOuss9i4cSOhUIh58+ZRWprwVnJ8z6X2AJo/RhwVk93Cxvn7SMdJdWAbdhKCbNjQp4nOngTA5twr2VZUBoXVfD9pw/vvv4+mabw7/ixCWpyplUHyMtr3/9YjIYRHs4llnI+eOQ5932KstQmxHRKtbD37WSaOvbDV7WXlZHHBrGfa1ZfOYNm3L3DCvNuplV2EZTsnhvazJZzNwEwLktmEs2cW5tJNWIPlbHjonwy5/yZ0VaN26x4syW6s6R5cN/0a/4rV9L72RwcbjsfQXC27pGthH1JyY2cBQRdQiLF7Swkrcj9n03YT8z9cjNPswGlxkupMoV9WPm5HEgt2LKHCVMIEcTJBJUhIC1KrVhMhTKVaAja4etnD2JSmAyaKwIGFP5vTEDUGRxN7quH9dByQPeNq9n73DWJkPiZb4wuapocQaPqmd4BYNMT6pW/QI38SmT0HEdlUnfDekQQESSC6y4spx4mUZEa0ySCJCLJAxXPr0PyJ2YDsu09Acnc83UN3Y/miNcxb/ClJ5gxmXngZfQe1zr0cEu7pt912G3//+9956623uPPOO7FYLOzZs4f169ej6w1tGzRNQ9M04vE4kboAZgfYtWsXNpuNsWMTS4bz5s2rn8lJSUnc7JRonMK1O5DNJqxOG+HaIG6sbLp/LulxJ6CRu/xuCnfNQTc50C1OkkQzxZahDLrhab74w/+R38R5DBgwgMLCQkKWxIyQy9r+m5W2dyMSYC7/AMo/qN++Nv1Eci59gVGpPdvddnfghHmJGaeNI3+OEPXj37kS9GI8efl8dN9D2JcspkdNwmZI+s9TrFy+GNPgEZg/eqG+DUWyorvSsWf/pn6b4K+FjObTDmiqih4NIEiNf+tSjUDcFqfEs54V+mdImszCagFVjB8stPngW6fiZtYNf2f1xqUs3rEQgIgS4T3vx+TTi9v/fi5Rf4yIN0qkNkbMFyXiixENxImGFALbapCiClZD1BgcVezJCUPhLjQMNDgyxGPVmNSmZw40AiCX8NXHP0cQzIiCFYejP/F4NYIgIklWQqE9qLb3qd0BG3dAzppf4iofc5TPonuycPF3ANz4y2twJrV9xispKYkzzzyTOXPm8Mwzz+D3++vFTFpaGkOHDiUSiRCJRIjFYg1eiqKgKAp+vx+fr2G031/+8peUlZWhaVp9fqxlH33HFxu/rS/j0RwMk3piUmXCQgSH6Skq5Wxsvp3IWgSTFsGkx/ClT66r0fR14JJLLgHg8a/XAOB2tN/AXP9eHvkNaWPQT/4Nw4ed1XwG+mOExf/5BRPq3k86914Adn/wHCpPsPMPz9JHVdl22hn4+w9EzM6m/+sv49ixAnasIGxJwXXTr4nX+oguX4Zj47eokRgkJUSKGPJC8rBmj62UVIGugbnhDJoWjePQkvBlB1geXgbA8quWYZJMROJRfIEARZWl7K0sIhANEowG6Z2ez75NO7hu+c8waSYkRCQkRsvDuf/cPyLKIrZkK7ZmgnX6vtpLYFEJgvjDvq8YouZoY08FXU1k67Z5uro3Bh2gWttL1NS0R4Mn6QxqfXNRhD3Iju2ogE8DJNAUCwJxBJvWoE4kaVebRI2lrxvxOH0qmzTuND6d9z9K91VQMCSvXW3079+fOXPm1AsTURQZPHgwF1xwQYMIuVpEwf/1PuR0G6LdhGCREC0SL3zwGpU1DcMvpKamNoqy7Pcl4sxcd/4VRIIRYuEIkVCEWCTK/K0rCSkncf+9DzTqX+9D3rfGL0aS2i8+dkStDAR2Jg0kNu1Rhg6efNg6xwK6pjFh6+sHNzzoJiRayYtH2GnPgBAU9u6HmJGB5HRicjrYfe0N9H7p3wCY9AgFP78YgA0PhGHjt2z6+e9IPv88+lx1LnLYh57S/PJTvCLx/bCPzW+wfcf/FmAXZJJH5LN7e50XnZT4rVpNCTuYjORURhcMbVBv6cL5KILKKH0wPew96OnsyQ3n3NKqZVctGD9urwdtwRA1R5tDk1oaouaYxic1H97+xMm/BBKJD7+YPRrRHEAQVbS4nTPPSiyBrPjmWXza38hK+huSbKHPiJMgBFpYQY+pKN4ookVCV3W0QJzQmnIEs4QWiuOelo99REazxz/WyeqZMKwtL6tqt6jZt29f/fvf//73mM1Nz3QEFhTj/6axMWiNpRpVUHniob8iCiKSICAKIqIgkpOSxXk3JZKohiNhkkUnvUY29sqqea6W9SVb2DBvJbLJhGyWMZlNyGYTsiXxWW+VpOkY28N2ppwyj5XjhtDX1fVpOTqCUl1N1b9fQDCZkNxuytPuJhwqIsf7GVmmSuxahNo9dpRQ4vYmx6Kkzv0caziMLRxCOmT5cfeUKRyYh7H1ySMG2Dd9R3TTd6x55gksagQy0ogFg2y69/cgikhuN7LHjcmTjLQnsaQV2b4TSAhFf2kF0poYtQ4vQyeczKDNPQmqAdRAjGBJFaZsJzZX07ZRo0+YxI+LzmNLaBsfxD6HavhJ6FqczsPbUqmBGNIP3EgYDFFz9KlPamm4dR/r2KMSNvnwgcV0BAQxETJdiyWe8ud/egea/UO0uIUhY88/WPiQSYCgN8r25fuJR1VyB6ZgH56OO/2HEQK9vDQRjTYtrf15g0KhUP375gQNgJzR9PKWRTdhjkTIqdiLZcwkVE1D01TKvBWsL9tG1offogNrKraQJjcdLtZisRAhzrvfNp0m4QCS1LmX4tpYHE2QSLYf+ze94jvuILR4CXJGBlowCMEgNiA8Yiz897/cMXcTSaue4kLhW3qvWskg20ERp2kawWAoMbumKMzolVu/r+/VMwhNP5nSOQvxrt+GUlKM4u9N3+mnUPzJR1g++wJFFJHrYvHE614Atf/+G/6lC+j/zsvseXUhTlzk//QkAKpD1XhdEUr/tBSAuSWv4h0xBUuOgt1uITnHzpi+o+iR0gOTycR9lzwMwAufPsMz5f/Gbm/ZNq/+3ALGTA0YouboYyS1PG6IiwrZpvzDljvhhA+pKd+NqkbxDEosOmh6XfI5U5QdG76mZ98TsNgaXrwWvbeDbUsTT4LLPk6EhT/5kv6YbRKySSKrTxLObpAMszOoqUzMgmXmtl/U5OW1bobHNjSN9J8PRwspxINxqnb70GMqsS1Reu8rZsTWHQx88an68gve/pIvNy1g9up59dti5mTu/WITVknEVveySyJ/z8yhJvtsPFEVu6JgVTRsiopV1bCqKhZFxaJpfJaayfzPNmAVBSyiiEUUsEoSVumgfURJVZCVe2twmCSG5XpI97Re4AZVHUnTsRzj9jMAUlJCQOY89hiiy4los1N0881Y+yeiHJcHY/SMhNjh6cEwW8PfhyiKuFxOXK6mvYjsGR76XnkO38/eVv5VIgFmny/nYktPJ1JZSaSqklhVJeGSUiIP/RF1/VI2jT4B01n3E5L9OHMSDzypZTKp2Pk6aQWTfWMJanZM2zPRtkMAWJQ1n3vy7kVSMzCJdsyiDYtop0JfhkVN4omXVuG1bKEgXSXDmYzL5sLlcON2eEhyunE63ciyjBqMY8pqnQA6njFEzdHm0OUng2MWNVpL3CRgseUetmxyWi7JaYlyRbvXsH7pO0w+52m+/ey3qLb3KSy/geJ9l3Lq9Icb1IuGFDyZdiZfMRBvRYh5r27hu/9uq99fMDaDqTc0XJM/XsjpmQWrYMemQsae3LyhZktkZ2eTl5dHbm7L/yNBFLDkJ26UexaVMm9eETo60UwdcdwM+r9yXoPyJ/34DE4Mn4JQZ+gvCAIT562n0FSXhlmH+mhvFhEwc6XZTljVCGsaEU0npGlE0AnpOtVAGJ0wcaIaxHSI6hDTIKqSyJwJ/HHZLt63Jmb8Tt9bzhtnj2j1WMR0HVUUOPHzNSTpAk4EkgQBlyjiliQG2a1cMCoXp81ETSDKNxvKQNeRJBFJFJBEAVkSkSQBWRTQlRi6UoPD5cBhs+K02shwuzGbWr6l1EQSM9QWyYI/5ifTkdnqcziA68wz8c+Zw95rrmmwPe0XvwDgz1MG8OULETR329tujlhlJRJgy8hAlGXs2dnYsxPBeL6Y9RQbhvdh+rpdCCE/+vu/QZNk9oyKkX/xj+lVYmOwcBpX/vE2AjURhLvjDdoe6zqZeRUx7DYvKckCETVISPVhVnui+3vz4v4ShIF/RSjTGnesDptmwZpk4SH5LibTt9lyPwQMUXO0MVnBZDfcuo919MQFRhBa/xPyVZexdfdFAJTM/jv5Pe8nNfMXrFx5GRLxRuXVuEbYH2Px+zvZv7ux/Y7NdfymW+g/NA8+ENiyaUe7RY0oilx77bVtq3NgZkTQQNDJ7pmK2MSN2mRrOPYPZGewpMJHSNMIahphXcev6yy060yNS9w5tX+7zgHgmtnr2IbKfJNKXkSnhyYQa2MbFw3NJryuGK+o4ldVfJqGX9coEVS8apyXxAiPz69lomTmC2L4TS170Eyd/z4jtqxssM3bZyB/eOT/Gmx7avVTjM8eT5otMWsx84OZDWyI3jvvPQqSm8+03RTuc8/BMWkims+H6g+gBQLo8RiOCQkfqJ5JNrLVMOGsnDa12xJKTQ2aLCPKjb8L3or96IJA4C9/JPqXJ0mtrkRWFbRYIompFo1gq5tdciZbueTeEwh6o8TCCt7yEBW2CPE5J/PgjDwumNT4IWVF0Q6u/Urjxn5/4JL+4/EFvPhDXnwhL76wD3/Yhzfq5Z81L1KREzxi53ysYoiarsCeaszUHOOIpoThnqZGDlPyIKX71hzySaCo6mb27MtBtNQQ9Ad47bXXsNvtzJgxA7PZzIjTe1K4vgolpuLwWNi5qpweAzyocQ1PloOTL2n/jbK7I5tkUqy57Chdy3+eF7nspzOPynEHnJhFz0EplG4t5rVPF5KW7WlVvbNH9uBsGsczGTpnNQOkjtk5eESRXZaEiJ6syFSjtdm0uEeak99NGdDs/m0lXu5ZV8gHUowfx038cmgeLqcVTVNRFB1F1VDVxF9N0Vjwdi1RZzr9b7qFcDTCxhf/iRBqeEMNK2GeW/ccz617rsH2G4bdgE228dTqp4gorf/9HIqcnAyHBLzbVbaf5fPnY7fZcTkcOGuqiKSc0K62m0L11qKbZXRdr5+hO8De9WsAGDfzRzDzR3z0k4tJ2b6LkaefiRKPgxLHlXxwGTUt10la7sHlrw8XJaIc56Y2nU5ie1UiKvWgzD5kpGeTkd44XHNZsIx/vvsimaldHMq5G2CImq7A5oFwbVf3wqADCJIJdB1Na/1FOa9gEnv3TEJ0LUQ0V6NEPAhqFmJkGNX+nuzcvROAbdu20aNHD84++2xOHdb8jeh45xe/vZa/P/Ise4p3Ht0Di1HUaMJN2+5p2vaiNWiaRq0MKYdZkjkcj08dzEOhOH9YuIMVeowSE4yLH1nbmP45bt7OHoYOiA1u2ibKakL8bOk6YkIct2bHjZm+cT/5PQZw5thECIKVcz9HD4catLm1eisAI9JHUJBcwLvb3gXg6sFXUxwo5qnVT2GWOj7b+Ni//on09eyDG3Sds2pr8EaP3KyFZLNjDUVYPmkizssuof+NNyFbEkEvRUlCU9X6sue9+Q4AihLjw8cfBcDsaP57VFab6GeP9KaNzXfXlgAwML35AIllwTIAsp2GqDFETVdg9RjeT8cBog66Gm11eavdxZkzX6Vq/x5WLvkNsmsVSjzKlHOf4aGHHgLA6XSSmZnJzp07KSsrIy2tZe+qfdUhdlcGscgiVpOExSRikSV6JtuQOxDXpDsgigLBWC0ZnsPbLXWUR266nmhaNiKgSDICiZB4rpT2J2MMRBQUUSC1A5GAS2tqkEURt93BQi3GHpvAuWGRGdntN6BuDkEQmgwDuLN4Db+yXI1YF4j/8fD/6KFHKdm6gL9dci4Aeu+BCNaGhstW2YrL5GJtxVrWVqyt3/6X5X/hk12JFA0m8eDYeL1eNm3aRK9evejRo/kovodSGwwizP+c4OhJnDjlDHplZlG9txDphp+Sn3l4z8TWMuLpf1L46suEXn4F4ZlZrHvxFaTpUxlw528x22zI5sZRvauKitizMuHxpLfg3fbfdYl7QVZy027bRb6EYLnig9uxyU7sshOX2YXL7MIsmZjUcyQuZwCATPuRsyM6VjFETVdgS4ZIbVf3wqCDCBpoWlutGyA1M5+U5DPxKqvo2fPGBtPZeXl5eDwedu7cSTTasmCKKiq3vrWa1XtrG+27dlI+D8wY0ua+dScEQUDERDDsJxyKYLN3nqeXaneCJFPm9PDemNMAMMVjvLOuCPuaIhw6OHSB6S4HP07bR0nhe0iiHUlyIMtOZNmBbHaRnDsWV05idq3KF8EUj2ETE2kY2pqM8uvVa1j16L31ny+QZCTRhB2Z/ZKJFyQTsmRGNpkZddYMBs88fLJPADZ9CKIJBp7dquJ9ZD+bOGik+uk5I3lgtg0Ch9h5BX1InobpQgamDGTRTxah6RrBeJBZa//NK5terBc0Z+WfRa+kg+kvVqxYwXffJSJJP/jgg63qWzAWR9Q1Bowaw1njxgFQXlpCFWDPOXI2NaIs0/u6G+h93Q2UfDGH4D/+gfW9j9j20ad4eqRR5nHyxE9mIsoykmxCNpkxWQ4KnU2bNhJ77RXsdht2pwuH04kzKQmH242JRFb45r4fMwacwsbFa4jpEQLRapRIEFUIg5SYTfxiP/xu3O8wi2aSzEc/03t3wxA1XYHNA959hy1m0L0RdQG9HaIGQK2b4ekz6DQgIWYKCwvZuHEj552X8LaZ/dabzH/sAS774/+R079husNFOyv5yfOJp8AzBmXy+7MHElU0InGVC59dRFxt3lPiWOKU8afz9dJP+cf/zWLmBecwYGjfRjYNR4KrbrqFTWtW82GdjrwoUEmlYsNisaLrOiqwSdL4yB9kYuBNaqxfY47koOlhNC2MpkYhpuNYNZTxOR8CULmviFtf/BPbdI2tCMRNJlSTGdVkQTeb0c1WMJsRzRYEixXJYkE0W5BNJkwmE76tm3AA7ituRFA1IhVe+vpjmGMxlGgUJRZDicXYW7SBbd9+1zpRU7kD3r4q8X78L2Danw9bRTYXEAx6cDhqiWNCC8XJseYRoKy+jLu8hPjA4U3WFwURm2jjX+/1RLdfyz8uH0BMjXFOn3OQxYO3oJ49Dy6vPPinB5Gsdkw2O/kDBnDpGWc22fYBo+NDl8xCxYlrqz239fnC2kLO1LPImXoW1evXsf/iS8hWwDx0BNFwiFg4jBKNoMRiBL1hJNlEXJIIqbBmx66mU+PE84AMrvjTf0i2SXjsZlKcFtKSbKQkObl/xx+ImXeDADOyf0rvlHx6Jedy5+KrAZiWdQtVkSrS7emd8ts41jBETVdgSzZsao4DJF1A1cLtqmu2eCAC65a+ygmn3UyfPn0oLCwE4KOPEjEx9LoL1K5VyxOi5sG6Nfe0/hSE4S9yDr9TbuTLzfsBHZMkYpZFdB0c5uPjp33K2WNwpzn5+NMPeOt/r2N938WAvkOYfPYkPM1M17eHXv0K6NWvgLnfLMUSi2M3Z/ONMw4cKg4FckMQ16txhyYx9txXAfCXbGXluktRzT5E4eBskru8ElHXcJ/7E1SbmWgkQjQSJh6JoMSiqNEIWjSCGo1CMIAQiyLFY8RUBUFREFWF2sxcbjvnXKq27GGfdy09pgwhc2RDA/E3bvoVqq40eV6hmIJVlhBFgfe2v8cDix5g1oQbmLj0FTj9vlaNTXm5n1UrzyEnZyumEXnUfrqbc0yn8fm4bLzLPwBAE0RuvOrqBvWU6mqiW7YQ318OSjFb9HspiaXSq8+OJo/Tv39/XJtXAODt2RctWororWbbqsXQjKhR1ANeiAdv5tEDWdTzOkfUHMAzZCjFokDqqNFMue/hw5bXNI2gz4uvtpaAt5aAz08w6Id1+9C8tewOiGzwQQidmKgBQSCIo4+fA3M4H5c/D+UN2/287Gkog/7W3hgYoqZrMGxqjgusmo1wbH+76o4Yfzlfz38QQUhcrk466SQKCgqIx+OIoogoimjBAEoo0GiWhsptpAOXyNv4vXI9KhJfb61gYt9U4iGNsXnJnFRw5OwJupoRJwxg4LDbWfjFatZtWMPabUvZsG01N9/8c1IzG2dI7whvaBaQ4bU6F/uPcnsQiCmEYiqhuMrQfkmUb96NSzvoZu7bvxnVnMgvFZQ3sezTS5CwUSuspM90gekzZmD1tE+AVW/fx39/eScllYn4ROJskYtufpBep46uLyNLZlSlsagpqQ1zwT8Xkuqw8GyPKmrnPcWYFI0/J23lk/srW92H9eEY746eQlyaij9gZ7Ejwv3A9LyTeWvFZ6BH6XvTHaR8L/T//kcexffxoZGUs0gedXjDa33EOP7w+0SurEeeepL4xjXNlg0GE7Yk1kOi7sb270cE7FmdazTr27ENWdORC1rnki6KIi5PMq7vLdOdMq1x2XAsTnllLRXVPipqHiUrU6TUV8z26j0U+oooieynQiknXXdg0TQqveUMsaQfidM65jFETVdgS04ktNQ0OA4ifP5QsclpBOMl7aobiyQ8HmRT4mIsSRI5h7MBGHA2bJ0NyfnovU9jtTSMf/cbT4bLwuDspON66tliMzFl5glMmXkCqxZt5KMv3mHVkk2cOXPSET3O6Wb46pAVxf/uKufeif1Idh20jyjd7qOWhfWf0/pOInPJJSiqD1ULoRFG0b1gC5HUC8xJ7Y/yuuPrhZRUbuO0s65h0IzT+c/v7mTeq7P4yZgnMDsT6R0kWSYea2h/tWhnJXe8vZb9viiZOzcSevZfTACGDcxl+EP/a1MfbO5MKqkmQ1MISxIf2TS+m5qEqodxn38bp6xZyrWjRzeqp33PGwpAyz252eNomoYiSjjzD+bQUiIRdFnGF47gtJgb2J0U7i/n3Tdfwwm4nAfFUryyEtFsajKmzJGkdm3C+DlpaPviKLWEzWwiLyedvJx0qAumN4pxzZZ/+Y6b6TW09cEYj2cMUdMV2DyADlFvQuAYHJM4bL0pFwrRlSiC3Nj7oSXi8YQreGXgz2xfn03BsIP2EKsWvkJl5SeACUGoe2FGdGUinPBTBMGMKJoRhf1Y971K1JqClnlVp+cP6g6oisrXX89H0iyMnXTkbyZvTBoJQNbXaxKfzXFOWrGDyQMysbocmB2J/3Oydmp9HUtSOkOnNrZN+faTGwkL37bZQPhQwj4fFsnOmOt+BMCZ19/Ce089xEs330iPnoOxuVx4veVYzHYq/FGe+XoH+30RPttQxvg+KTz2o+G8cd+S+vaG/eUZLFLbvqs7I4lZq4WTRvB2ZS0vFlXW27LsEp3ErvpRo1kagJw//YnIVVehhULooRBaKIR9/IRmjxOPKlyedyesgyctH3LZ9Kmg6yRVlPL8NT9CFUUUkxnFZEG1WEmq2s8BKeNxHhSOtnnftOn82ot/yxYkIHnEyKNyvJYI1lTjSD7yHnHHIsf/VbA7ckDIhGsNUXMMk5Q2EbX0G4JFc3Hmn9umui53OimWB6jmIYL+0gb7Kis/QDftQ4j3RtNDoMdBiIOu1L1XQFMQxBiSHCAUg5I9w+nZd+yRPL1uyVsvfYg/VsFZk2eSnNY5nh6KqmKLxwibEjFUvl7+OWu/SXiaCDqMO9FBjfUbNmx4h6FDL262nbjiRRc6Focl7PdiMR1MuNlr0iguc/6VBS+/TEXJbqLxMDE1THpGHj+etZjdlYkZwEcuHMYlY3siigIP9h/LY5KJ5574OaaMtmd2/280MePitMhcn5vO9bmJZQ5V0+jxzbom3cABJI8HxwmtD4BnEg6Kv16zl/LcR28Q69mHWP9hmJLcSBYruqqihwIQieB1uXHv2Ya3Vz/MksyuktIGfYnGYlhaSGTaUWJ79iBazZid7Y9ldCSIx6JEggGchqgBDFHTNVg9ib+GW/cxTVL+TCj5M96SOW0WNQD5/adQvf4hTOaGF0VdCCKrJ3D6zH8eto0dG76msPwGZPn4TGz5fXYXbSfHU8CEyaM67RiyJLHm5OEU+QOEK/x4Tp1OJBghEgoTCUWIBq1gfZ6a2s0ttqNqPnQ6llU9HPRjtTT8fmSOKOCiJxobpmbsquLS55YwODuJy044aCQ7YXQfVqWmtChofL4IkbBS75xzQBwoksCJcZFCk9poeVOtC2ssHqFVT9Eqk3nbaOJlIYZas9k973OUDWtxVpYhtBBD2b13B7N/ezMAOgIDs7PpW1rKltFj2JeZTWFWLvt75JLSvz8jRg6lYEABPZz2Di/XqiUlaJ6mA+YdTYI1CftMZ3JqF/eke9AmUfPss8/y7LPPsmfPHgCGDBnC/fffz/Tp0wHYuXMnd955JwsWLCAajTJt2jSeeuopMjObDwikqioPPvggr7/+OmVlZeTk5HDNNddw77331n/prrnmGl555ZUG9c466yw+//zztnS/+1A/U2MYCx/LSLZ0nFET3vjaJgLkH55IOPH0r2ka4aAXk8WGLJtBDCKLrZuFiEUThpIW6/Efn6J4734UwuT37lyvFgC3zYrbZoWMxgbX4fAYFi1+Hou55SdjjQAi9hbLHI5wyI/N1joj4/F9Uvnx2Fy2lwcabK/0x0h1Nj9jsWd3DafPWoTaxD4t2UzshHRS441FxUFRc+RsuUyZDkyZDgpI5/YBtwDgC4XZVVREWU01sVgMxISHn65r6HXyS69bEFsdUbnbp9Jv324ya6rILy0iv7SIMVvW4/4oEem3RpRYn5nFnuxcSnJ64u5fwMgRQ+g3aAC9XI5Wn49UVY3WO/+InXt7CdQkUu44U4yZGmijqMnNzeXRRx+loKAAXdd55ZVXmDlzJqtXryY/P5+pU6cyYsQI5s2bB8B9993HjBkzWLJkSbPryn/5y1949tlneeWVVxgyZAgrVqzg2muvxe12c+utt9aXmzZtGi+99FL9Z4ulbevC3QqbJ/HXcOs+5nFLPahVi9pVV9cSt5HywG8pX3pgm4hs11B4hzkfrQRMoJtxu05j/JRfN2pDiSeWBpYvuxJ0C+hmYhEBuy2Xyec+0yF7ju7G/DkLEXSJCaeN6dJ+BAIJjzerteUnY10IIbVL7h4kEgngdrfCq8VXAo8P4jHgV7GbeWR2Ci6rTJrTwryt5Zw9NKtRFX8oxordVezcWYMKXDkgk4JUBx6TBILAX7eWUORN2H4N8jQWZ2rd7ElxpHEy1iOJTTbTO7kHI/r1QzjMtNCiLXupKK3m83NOJtsssyscY40/RI0ksqK4jB0bN6Ps2EFOSRF5pUUM/3YuKZ8k0jcERJEvMrIozMplb04ug3tkcPqY4aSMHddoiUnTNCyBIEqvzhfYhyNYk0iO7EwxZmqgjaJmxowZDT4//PDDPPvssyxZsoTi4mL27NnD6tWrSUpKPDW+8sorJCcnM2/ePM44o+nAUIsWLWLmzJmcc845AOTn5/Of//yHZcuWNShnsVjIymr8wzwmsSSBIBkzNccBSZ7RFAf2oASKkJ1tC+ef1WswocC/CQcrUdUoqhJF1aL4tb+hhLKRhQJ0PY4qr8cb+Az4daM28gecRs3iSxCFIBox4sJK7OlVRKo10Nua9rB7s6d4BxlJebiauMEeTYLBCgBstpZvIoIURaJjsXQisQA2Vytm4bwHhfWPnOu5b2MZ/ohCdSiGrkNucuMx+9uinfxLiiLGIpiB17YmxJoOCLIAysHvz4JgmOELNmCRBKyiiF0SMdcJ5m9q/HxUXsN5GZ1jH/jhE6tZ5Q2SdmIGp5zWi6CqMsnjRG5CsK/2hTAJAj2siZmpfg4r/Rx1S7PpHhh5MDyCpmlsCkb4dk8R2zZsJrpjB1klReSXFDFt4TzSvLXUPA/VQMRhQ01LQ+zVE/uAAZizspA0HUsr3bk7k0B1NbLFgtnWtb+L7kK7bWpUVeWdd94hGAwyYcIEdu7ciSAIDWZQrFYroiiyYMGCZkXNxIkTee6559i2bRv9+/dn7dq1LFiwgMcff7xBufnz55ORkUFycjJTpkzhT3/6E6mpzV9UotFogzDzPp+vvad65BEEsLoNm5rjAFfmKRB8n2DJN7j7X37Y8t99/iCxWDGCYKn3YhJEC6JoRqr7C5Dmvo4xJ18HwJcfXYeqlzfZXlJyJqeenfC8WfHNi9Qqc9ECpzL1vGcQJekInWU3QRewWDqW8fpIEAolRI3D0fIMimiOYdLbf6PXdZ2oEsTmaoXdRs8T4I6tEPFxsqcn800JW55IXGVHeYDeaY3dyrdFY4wC/jiqHxt6ZVONRk04jjeq4I8obNxRRcAXY4TbQVEkRlTT8cZVKnQFVQf1ENHs6UT36dX9rLyYIgNRHlu1vcG+U5Od9LNbGZNk57RUF4WRGJmtDDwpiiJDXXaGDusPwxoGNJz8wRdYggH+Zdfxr1uHtn07FJcgLVsO3y3igNe/e0Tn2Xa1lkBNFQ5P8nEd0qEttPmbuH79eiZMmEAkEsHpdPL+++8zePBg0tPTcTgc/O53v+PPf/4zuq5z1113oaoqpaWlzbZ311134fP5GDhwIJIkoaoqDz/8MJdffvAGMW3aNC688EJ69+7Nzp07+f3vf8/06dNZvHgxUjMX7kceeaQ+SWC3xJZszNQcB1jTRsEuiPi2crhbj6LEiJlfQ1EyQXMAMdDiQBxBT7zQFQRBIjn1YKwOnTgCLd/MVy96jVrlz4jhqZx2zlPHn6ABLLKdQChw+IKdTDiSsGFwOA7aCipKlJJdCygrWoTPu564thtzsorL0q+5Zg5LNBhE0zXs7lYao7qywJVFTVyhvCZAb6cdq0liaI+m6+8VNMZJZsb2TWNs3+4brHFOtgBRGOSw4pIklvkOZt/+pibANzUBXig+WH5SBzKrHyCEQJrdRv4F0+GCixrsC+/fT8XSJcRrqsk48cQOH6ujhLy1ODyGPc0B2ixqBgwYwJo1a/B6vbz77rtcffXVfPPNNwwePJh33nmHm266iX/84x+Ioshll13G6NGjW1zXf/vtt3njjTd48803GTJkCGvWrOHXv/41OTk5XH11Iuz2pZdeWl9+2LBhDB8+nL59+zJ//nxOP/30Jtu9++67uf322+s/+3y+BrlFuhybx7CpOQ6Q7T2QFJ1IqPCwZSPBxGxhdtqvGD7+kmbLNUp+qGuIzvV8MWcoaCZ0zcrggU/Vu3BvXvUxVaE/QGjycStoACRJQFO7fkktFk08jOzfvxaLycqSr24nKi1BtiZsSxTZhqRmkWz6EcMn/LLdxwnsT0T9daS0bbbnumXbWVwXjM+u6KQp8PbofuRnHlwKU1WNfWb4sanzXJ5bSyCwFZutJ5LU9PJJpsVEUTTO5mDCvkcAft8nm4d3lfKjzGR+m5/Ft7V+FtQEWOcPc2texzNVe2UzSlxh6c5dZDidZLrd2K2JVQhbZia9zpvZ4WMcKYK1NTjcnq7uRrehzaLGbDbTr1/i6WPMmDEsX76cJ598klmzZjF16lR27txJZWUlsizj8XjIysqiT58+zbb3m9/8hrvuuqteuAwbNozCwkIeeeSRelHzffr06UNaWho7duxoVtRYLJbubUxspEo4LhBEEZsiE442Pxt5gHAokdXYZGn5SfL7DwEafmRBRzKFgTDgo6ZiJz37jqVkzyb2VdwNkdFMOeefx62gARAEEV3r+kSdvXqdwZat/6Jw91/Zva0M0RJDDo2hZ84F5Pabgt3Z9lgwTREqTxiA2tPb9hReFoiCGZyKzkW6hVesMSr8kQaiprgySFQS6OPuWjuMzVvuoaTkLbKzf8TgQX9pssynY/qjaRq7wjHWB0IMctgY6LTx6O5S3t1fw/19c7giJ40rco7cbJOow2JPNjP3+gAfUII5FsUWj+JQYjg1lZNdVh4+89TDNdXphH0+3BkdF3LHCx1eCNU0rYHtCkBaWuLLNW/ePMrLy+uzDjdFKBRqdBGXJAmthYtXUVERVVVVZGd3bm6PTsWWDIH25Q0y6F5YdTsRpeqw5aLhxEyNxdJG41ExgBp1occTNhyycxcVFfP55rN1RNRvAA+nnDELWe56e5POxOVwU1JVSDyuYDI1vHRtXLWdTz7+hKgaYviAcZx/+dRO64dZStjyiaZCVH8Phg1/nKxeLQc+nPfxB2zasAFZlpFlE2azCbPZjNmcePiyWC1YrDasNhuetDQKhgwjUFHn1ZLZNq8WjwKY4YUe2aiazisV+0m2N5yR2VHn9l2Q3nWB40pK3qWk5C0ABKHlW5Eoig2NfoFhTjtr/CGu2bCb2WP6t1C77SycMpYd5RWU+4NUhcNUhSNUC3GqUfAKKqtMNj4Naxw+jWXnosTjVBXvZchpTT/c/xBpk6i5++67mT59Or169cLv9/Pmm28yf/585syZA8BLL73EoEGDSE9PZ/HixfzqV7/itttuY8CAAfVtnH766VxwwQXccksiBsGMGTN4+OGH6dWrF0OGDGH16tU8/vjjXHddwkgyEAjw0EMPcdFFF5GVlcXOnTv57W9/S79+/TjrrLOO1DgcfWweqNjS1b0wOAJYpWRqOPxMTSySiEtjtrZR1GguJEshWPz1m3TbV0SiKaDbGTb8SWwOT9vaPAYZf9IY3vloK19+uIjpPzoFgHAwwjuvfMKu/RuwCEmkOLJYs30Rud9lMfbk4Z3Sj7defIm03nn0yTqLEy76basMNFeuWkVI0TAJoOmJ3N+6ICQysQuNl+dHrV6FVFoLgD2z4UxNaNUqCn+SsDl86u4JKLqKQ7KTbE7mlum3c31GCrcEqrHIIkW+xJJNirPhrPUubwhR18nL6DpRoygJkS8IZjye5vMaNcfnY/tz9optrPKF2B+Nk3kEjciTHQ7G9W4+Z9c5H8whoHb9rGFtaTFqPE5G775d3ZVuQ5tETXl5OVdddRWlpaW43W6GDx/OnDlzOPPMRFr4rVu3cvfdd1NdXU1+fj733HMPt912W4M2DixPHeCpp57ivvvu4+abb6a8vJycnBx+9rOfcf/99wOJWZt169bxyiuvUFtbS05ODlOnTuWPf/xj915eOhy2ZMOm5jjBas4iou5F1/UWb3DRaEKUWGxtC5Q37LRnWFj4FfmOXpgFE25LMvk9hnSoz8ciQ0b356u5PVi2fj7xeAxRFFmzaRkKUfrnjuRHV5+DLEk88tD/sWrV2k4RNbFohKqISnrgx5w4+eetrhdXNTKTXPz8N79ros0ooYCfUCDAlrWr+XbVWlbv2J3IeyTKyLaGsyyhFSvr33/HcrK0dJK8yWhBM8888TTJkpufKV7eticzaMLZADisDS/1u4NRsnSwmrpuubJXr+vo1eu6JvdpmsYtm/fydbUfSRCQBZAFAVkUMAl1L1HAG0/EenpoRzH/HJJ/1PpeKcj0EKKHL9jJROqylLfK7f8HQptEzQsvvNDi/kcffZRHH320xTIHohEfwOVy8fe//52///3vTZa32Wz1M0HHFYZNzXGD1d4LNbQMJVKOydb82na8Lvqv1d62C9C7O9/j+fXPN9i27PJl2OSOheA/Frn+5it48Z9vsmrrAtDBY8nivAvPoc/AhBNAwBdCIYbd0jm2Ijs3bQRRpN+AQW2qp+pgszadysJssWC2WPCkppGTl8/g0WOZ98nHbCsrxy43ntXzXHA+otXCa/oq0L+ir78/WTVZaB6F3nJPLHETlV4vSaEa1uxaB7360ue79eTEoJcmkifLvGmOMyF8ZAIzKprGlet3UxyJMWfsAGxSx9u9Y1sR75XX4pREJEEgqumE0FAV0HS9frZL03W6IrxkpcXGCZHuIGoSnmBWR9fmn+pOGLmfugpbMsSDoMRA7noPBIP2Y0saACEIVa/G3WNas+XiscR0+97ti0hK7onLk0VtZSF7dvyPwSNvJKNH03YBua5EUL80WxqV4UrGZ4//QQoaAIfLxi9/dz1lxZVIokR6dkPPoBULNqCLCpNOb30ixbawZ/s2AAqGtS1DuCqIOBytE1pZuT0TBt+qgsPW2B1bTk8n5aqriL1VxEVbLkJHp+/Evlw59cr6MtJ777Fu3TpsVft4bdR4dvsi7FGj7NHiLFNjSBpMPALB2kqjMc5avo3yuALAqyWV/Kxnxw2lF9YEsIoCO07pnCXEjhBRVYIWOz0IdXVXiNbN1FgMUVOPIWq6igOpEiK1cIS8JQy6BkfKGCiDYPWaFkWN1Z6O7hUo891OmQ844AVug/Vb30dZMRxRSMYkpWAypZLT6zScXyxn0D+fJfcGiVBPjfvG38eP+v/oqJxXdyarR9OeLoW7C5F0M/n92hbdubWUlpQgaSruNmREDgX8IIo4nK23pQoGAwiq0mzep23frCO4JRECbvDkwVxyasMQARdeeCFC3/6sff9dqmMV3HjSyAb7G4UNaAX/K6vmP6XV9LVbGO6yYxYF7tiyj5iu84ue6Tyzr4LZFd4jImoUXcfSTVN8lNTWhWZwdn0E32gwgGy2IJuObyeBtmCImq6iPqllrSFqjnFEd17iTbi6xXJDxp5P3/AZ+GtK8deWEQyUEwmX4/dvRkBApAZNLyeqb0eVS9i2dSG9/rkTgJ9lXMjk8+/Aben6rMDdmYqaMpKsae2Orur3+3nuueeIxWJomoYkSciyXOepZKas1o8Qj7N2ySJGjJ/YqjZrKhIRiF2tDaIHRCJRBEXB5kh4PimxONuXbGTHpm2UVO2nLFZNrj2D8667iIz0ppc8Zw4bzLy5bmYvXcYlY0c22NeenGCP7S6jMBJjQW0ASHj7mQSBV4fkIm04kXd4mlW+rMSSUAej2yq6jtxNA+TurU78znu4u96OJRIMYHU0b9D8Q8QQNV2F1ZP4a6RKOObRzInlQzEeO0xJsNqcWG0FpOe0nDNm7kdXAGEGbdlMbN8+BvbogdDBJ9fVC1/DZk+jYNgZSMeh+7eiKATiNQzKbn/Cyy1btuD3+7FarSQlJaEoCvF4nEAggKomjFJ1i5X3P5vDoFGjMVuatpM5QCwa5eUXXwRJJqkNAdIisRiCriHZHTz7pyfZryTs7xxYyXamM6VgEOPPPxWTufn/oyiKBMxW0HSiqoalg7YuYU0j1STz1dj+LPMF2RqIcHlOKllm+BoYzyI+0i9iUU2Ak1I6lvNK1XXkbhr2v7jWC4j06gZZscN+H1bDSLgBhqjpKupnagxj4WMdNZoIqieZOnYhPxSdECKJJzBzOyNha5rGN5/diab5UIVCJPsuiMLeL1Jw2y9g2NgbjliguO5ATYUPBI3M7PZnK66pSfwer7vuOjIyGo+Npqr899/PsbW4FLkV0XhL9uwmLsmYVYX+w0e0uh+arqE6kliiJGYFcsxpTD/3bHoMzW/TLItJVQhYbHxR5WNGhqfV9Zoiqum4JJEsq5nzrGY4ZHhOn7KT3qEoHy3dzHvlNR0WNYoO1sNk5D5aXPj+ZxQKZiQ0ZF0nKMqQlELPtK5PLRH2+7G1YVnzh4AharqKAzY1hlv3MY8aSSwvSJYjl6VYJ4gktj9KaDwWYdfmb9BsH6KEstA1GYL96J13N7t3voVPfo2Fi1/Fok9j2OhbSE5rf46i7oLujyPoApuXLuHkM8cimdp+edu/PxEQM62ZG5YoSURjUSS9dTYpNVWJ8BUXXHgBVnvrbTCuufHn7FixDpvsxpWWTN9xAw9fqQlsukatJLGoNtAhUbPGG8SvqGS1kCyyj92CVRRYUNPx/FzdZaYmriosTsqkn6+CbDQUIK6qTArsx2YZ2dXdIxLwY3UZouZQDFHTVZhsIFuNmZrjADWcuHGJR1DUIIaRhPavla9e9CJ+7W8A5OXey8CR0+v3FQw/jcqSUtaveI6w6X1Wrv0EMTKJAUNuoUd+24OgdRfc2cmcHB/Et+ZNbF28gcGnjGxTfUVR2L17N0lJSS0KFlXV0ICAtxbnYZaUfLWJ33dyettmxNKzc0ifkdOmOk1hiseIymYCitruNl4truSubUUIwN19Wu5Tf7uVjYFwu491AE3XMXWDmZp9VTXoosgN2SlcPb77/TYK163u6i50OwxR05VYPYZNzXGAVpe1WbJ0fI09Egqxbsl/EM0VyHr718qVuB9Nt9A391/kDWhs0JqWk83k8x4g4LuNtYtexq/9hy27LmXThmHk599IvyHT221s21VYXGayhWzStH3Mnvc5ZrMZi92K2Vb312HF4rA2O4Mzb948NE3jtNNOa7Rv9cLvSM/JIbd3X848dwYvvvoa773+Klf94tYW++T3JpYmU9LTO3x+7cEUixIxmUmS22dPc+umQt7eX4NTEvl4dAGDnC2HEhjktLIuECYQV3A2Mc4xVWPU4o1Ux1VcslQfVO/QgHpmUSCk6ZRF4+3q85Hi6W8XMas2Cq5kclzd12U6u3/7ZvGOVwxR05XYko2ZmuMANZKwe5Cs7bflKNu7ia0b3iAqfIpk8SNET2DoxOvb3Z6uq+iqmT6DT2mxnDMpiUnTbiUe/TnrlrxDhfIye8t/ye49eWSlXcvgsZcgH0NxlNIuHcSJb9bwqWUVr3/+drPlfnLmRfSfdDDWjK7rLF++HIvFwqhRoxqUDfp8fDhnLqKu8eOLLmTgyNFkOu0Ulu0/bBRpv9+PoKmNDIoP5LZrjxdSawnG4lhUhXR/LaltdPkNqSrnrNzO5mCEAruF2WMKcMmHv12k1gmZyrjapKgxiQJVdVGAkyQRRdeJ6xDVNFRdr3slyka6OHnpl1VeomYn5/jLOGnS5C7tS1NoqgqCwNDTzuzqrnQrDFHTldg8hk3NcYAaTYga0da2p/HKsl1sW/8O/shsZEcRWEEP5pOWfBup+cOJBH2onkwk6fA/0xXfPo/XuwpBMCEIMjF1C0Ibns5NFjNjTr0cTb2MLau/YK/331SEHuSrL54i2fYTho+/Dmsb0zt0FrquEQ6WU12xF1/NPoL+YsLhUmLxMlS9HPmMrZxVOJW8iXcRC0cTr0iUWDRKTUU13+1awZtz/wdz/4cgCPUvVVWZPHlyI5Ey688PgdWFqGr893/vceLOHdisFtRQhNK9heTk5Tfb11AohKTrjbY/9uADRAQRdA1R15k6+TTGTznjiI5TZSBh29KvopiMFmxhvs+OYISzV23Dp2hckOHhn4PzWj1r56kTMuWxOPn2xmlsBEHg9vxMHt+znzvys7gsp/0PAp1NGAGzqvDwSSdgM3e/lDwhby3oOs42xEz6IWCImq7EmKk5LlBiCVEj2w+fNb62qoSt696l1v85snMrGiZkx8Fpdtmxh8rQH6jck/hs2nQ5p0z7w2HbrfK9jCCF0ZVkEBQQVURldJvPRZREBo+dxuCx09izdTnbN/8Ln/kZvv3mRaycz4hxN+FOPfx5dhZzP/4Jgm0FgnjQRkRTZVQlBUnSka0Jo21LmoWcgb0a1d+9chvf7VpB3569Ea0y8Xi8/mWz2TjppJMa1QmQyI+UZLMQjsZYsn5T/b7q/WUtippoNIYiiDxy/33IokBM1YhLMoiJNh2iSFAXqCovb7YNJaYSDStYnSakNrhlew8J45/RymSPH+yv4RebC9F0eLigB9fntk2op9TlkqqsizDcFLf0zOTpwnLu21HMJVnJnTpb1RF+O7A31xdWM+2blfxndH8G5eV1dZcaEKyz13J4jqAt33GAIWq6EqsHqnd2dS8MOogSq0HQ9GZdupV4hDWLX6Wq5jMk53rQRQR9JKbY5QwbeyPb1r2HT32GkUM+RYlHUJQI8ViE7bt/hczhY98AIMSxCmdzynl/OmLnlT9gHPkDxlFevJONq/9J3P4GK9a+gRIYxIhRfyGrZxck1bSuRBBVUsyPkuTOxZPeC5tZZv3ntxLIXImo2EjXZ9D/zLubrF5dlhA9F110EXZP6+wkRg4bxsatW6mOwZC8XowYPRZBFFFUhQEjRrVYd+Ipp7B88SLicYW4ohCkocFuUE/MgKRlNvR0K9vl5X+PrSS9l4uKvQezswuigK7pWBwy2X3cjDk7n6zeB4P67fQFeHrBUgYnOXBbrYRMFsJmC25ZanGpLKZp3LWtiDdLq7GKAu+O6sdYd9sN1XPqxFNJpHl7GLss8tOeaTyzt4IvqvxMS++eASVPHzSAdxz7uGLDHmZs2MvTtT6mjWhbeozOJOStBcCW1D3Hr6swRE1XYvMYMzXHAYriRdaEZm8YG1e9hVf5CzAEt3wnA4dfiLe2hK27L2L5wg3YrWPQNRvpOQ3dqnfs0Ynoc5nz0TpsptGcMr15wSKICqLYOVPkGT36ktHjb3z5SRGCfQWyczMbt5/H+jVj6dP3Z/QZ1HjJprPQYm50pTejZl5cv23Fp1cRSt1MT98v6TP9OmRr8y6u1RXVWDC1WtAAnHf5laR+8TlffbeAjXuLkSSZC6++tlV1R06YxMgJk+o//+PPfyQSi/Pru+8h5PcT9PtQVYXcPg3/9/Pf2ArQQNAA6FpiKSsaVNizvor0vKQGouYfi1eSvOw7ioFiwA7sT0rm7k/nMqx4J3FJJi7KxGU58V6SkVWFEk8axZ50eiUnM3t0AWmtnNn5PnnWxHew8DDJHn+UmcIzeyv49Za9LHIPIqUNy2NHk3G9ejLX5eLH367ghvIId327kFtOmXT4ikeBVV/swpp8u5Gh+3t0z2/SDwVbCoSquroXBh0krviRNanZ/ZFwDZpiYeqMDxHq3FSLdq8EQBf9qKofXWscwyTZfiN+3wbiwjrC6ryWOyHEEcXONegt6H8bpUVLGD3xZ6xd+jpV+uvsKfspO3f1JjvzGgaP/jGS1Ll9MOkTiYsH3Vg1TcNvWkm2fDn9L/jVYevXeGtJkts+AzFp6jROnHI6f/rjn1i/cxeb7rsXUQBJEJAlCZMkYTLJmEwm8vLzOfOCpvNzqaqGKAgHM3M3Ew9n1NReFG6oQjKJqHEt8VI0YhGF0h1ektJt+CrCWB0NL+EjnFb2Ap4JJ7MtHGeFAv3y8+m5eD6SplHqdmNSVUyqgj0awRkN4Y6E6F9elGhg0HC8BVmktdOTr5ct8f9/vqiS54sqkQSwCCIOSSRJlkg2SaSbZbIsJsYm2VnhC3HRmh18fUL39eDplezhq+knc+Wn8/iTnM3W2V/x92mTkbp42axsd+K7Y7J0P3ufrsQQNV1Jcn5C1ES8YDWmEI9VFDWIieafbOOxAKIc5ds5dxPR5oNmQnaUACCRjqoFoQlRM+7UnwPw1ce/QNG2tdiHxExN5wqKvP7jyes/vq5vP0VVr2fzyk8p8r5Iuf8BSr94kmTnpQwbdz3WA2lAjjBWSw9U/YsGSymiZkOJe1tV3xv04W5hJqclZNnEpJHDKS8rIxqLEovFiStx4opKNB4nGI0S0wWKatbh9iTTe+CgRB8FIZELSRBQVBVZal4AH2DAiVkMODGryX3LP91NTVmItFwnPQc1FB+nDSzg3/PmUrv4OzKAky02pk0aw9feKqTcPN6+5or6siW1Xh5/7Q2IHJJtevM6Xti2iemXXc7J/Xq3eYxMoshzQ/JYXBukNBqjMqZQHVfxKSql0Rh7wjrfj5izN9LKJdYuxGG28O7Ms7hr9lxetaez/cMvePOMSaQYge+6HYao6UoORHGt3AG57c9XY9C1xPUwstC8oMjJPZXdZS+jWN5BBqTwhai8B4BmXo+mixBt3ghR08NI9kLmfDoeNBPoZsCc+KtbEbAiJcXQj7ILrCSJDD1hBkP0c9m9aQXbt87CK8/iu29fxC5exKQzDm/g3FYczl6Ew1GCvnKc7kxEUcStj6dS+Jzawsvx5A1vsb43FiAntf2Rms+84KIW9z/3t8co8YeY/c138M13TZQQSe9gRuVx5zQvNvqkpvDHe36PNxzhtv+8S++iXSyc9QxmoH+fg/UW79jNB+++g6yqBDNzcOwvqd9nVhVW797TLlEDcF5GMudlNG+8qus6FTGF7aEI+8IxBrtajn3TXRBFkcfOPYvBi5Zwv5LMqV8v55kBuZwyoH9Xd83gEAxR05Wk1oma6p2GqDmGUfQIJrH5de0+g0/BbP0fpYXLcbn7MnDKFNYsGkV5+aeY5DQ0PUZG1pRm6w8YdBN7d/VGE6NoRNH1KJoeRRei6HoYXahFjXpI79l2b6cjgSAI9Bkyjj5DxlFWuJvVK35HJPkNwsFfYnM07z2zb9cKigs/x2rLwOHKxp2Si8vTA6s1DUFoemo/KTmPyjBUle/C6U6Ik0GTHmT5dxezZsuVDAw8RtaQs5qsq2kaQT2My9p5gdRKvAGoW5Y4dcwodHSoc+nWddDRGTqm6ci0hYWF5ObmIrViJqclJFEkxWHn2imn8e63EmkWC6eOGcXk/n0BeO2bBWybP494kofrf3IZg9JT2VNTy9Jde1g7dw6Zo8dxy+mndqgPLSEIAhkWU8Ij6xh03MlKSuLGcCVPu1K4vLCWhalVaLpOst2Oy2bttt5cPxQMUdOVWFyJZSdfcVf3xKADKEIcu9hyXp/cPiPJ7TOy/vPIiT8BftKq9nsVjKNXQfcL0d4UWXm9GRT6PTtLL6KseB29+5/ebNkt6/+O6FpMICBSFdIgkXYJXZPQFQ9oqUhCGmZTBlZrJnZnNpKYeKqvLF9CXsEEACxJaYyd9F+WLJ5OWeGHDUTNjmWbWbNkJbIkIYoSugC2lE6MDnvIDW3yjJmtrub1ennppZew2+386le/wmw2d9j4elyKi00LPqXP6HGcVnARu6uq+fcnn2HavZ1g7/7cf8lFeOoMe/ukptAnNYXLxnWNMD5W2F/r5ZryCNQ9xOQFa5iybDMBW913Stcwx+NYlDgWNY5VU7HqKjZdww7YRbALAk5J5HRZpb/Lji3Jjd3twZ7kxup0Iskdm8n7oWOImq7GlQO+0q7uhUEHiAsqstx9w6gfbbLyBrF9n4mq8g0tihrdshZNsTDxxJV4q0rx1RYT8JUQjpQRi+4nrpYTp4qIXEgoXoM3dtD2ozb6NF/Ne5poNA1BSEZQHJjstWzZBOv/+jwm2YRJNlFUUUJAiOCS7CiaShJ2svI7nlOpOcYO6MeKrTsA2L5hPQVDW+cCvGlTIvZNKBTikUceqd8uiiKiKCJJEpIkIYoisiwjSRKxWIxAIIDb7SY1NRWz2UxycjJnnnkmgiCwZcG36CGV8uW7uUt+GVtJIaIgknbKFO6ffHLCzsegTRTX1oIgco8UZGh6GoNHj2fu1u3cXxUiZLWDIJIR9nOirBFBJ4RGCAgJAtWIFAsiEVGm2pbE7o1LOHXh7EbHMFmsWJ0urC4XNqcTq8OV+Ox01m83W9ufF+54xxA1XU1yHlTt6OpeGHQARdIwyYah9wGsdgtKqAfV0dksmhvDbE7CZEnCYvFgsbmx2T1YHR40xYGADYfbhsPdhxz6NNtmLKLgr/ZSW1XM9qLfYrJsJxJJRRQHoqqVwD58RUOJhUaiaAqhWIS4pqBLML73aE6/6pyjcu7nXnYF/PdNVmzexhvv/o9bMzNJOUwyy4ULFzJ37txG2202Gx6Ph3g8jqIoKIqCpmmEw2E0TUPTNHRdp7a2ltra2vp6gwf3Ye/en2LbfjIze93CTrGMXSUbAZB0jdKF37B1yCAGZXZNPqpjmcpAQliPzMzg5AEFAFxxwlgmlldw7cJVbPVkUuROw1mzn/kXNlwG/d0Ha/nSrNFPE1gpwJSpM7n5p9cQ8noJ+RKvaDBAJOAnEvATDgSI+H1EggG8FfvrtgeIhoKAjDX5VpzJHVuqPB4xRE1Xk9IHdnzV1b0waCe6GkeRQDZ5uror3QqneSoh/V2C2iuE1TCJx1XgkLBMproVu88+H4Gm2QAHguBAFJOQZTcm2Y3ZnILFmoLNmobDkYEnJ4Pe5l9SVHwrAwY8Qr++zc8EdRVZOT1gc8Jb7fl/PsOvfnsXVlvzxrALFy5EFEWuvPJKQqEQoVAIXdcZO3Zsm+wzPvvsM5YuXcqatRdiswVJi/VEdfkZOngkjlV2vhytEVm7EpOq4j9MHBmDpqkMhwCJdFfDmZI+GenMO+8Meny7HoAKU2M3688sKuVWkQPGBnpNBPNAO2abHU9W66N0a6pKJBjAVxXEYwjTRhiipquRTKB1bTZag/ajhMpAEJCPQIbu44mTz/4d8DsAVFUhHPASDtYQDtUQDXuJhL2Ueu9BEBTM5tNQlFo01Y+mB1DVKnQthKpGUNQYoXADLQQkjG6zs1qO5ttVjD35VLzVVXy3eh1hXeD5fzzBL35zV5MCZdOmTYRCIcaMGUPv3u3zNjpAOBwGwGJJ/DXFUtF6e7H1dpO1NInQ+vmIQDg5jQEZTcfHMWiZ6nAUsJOR1NgxQJIk7OEgI2MB7hk5oNH+j7Ny2K0q7ELh9/5ahvRu3zVDlCTsSW7sRiThJjFETVcjmkBtPk+KQfdGCSZcYWVz903M19VIkozTnYrT3XCMij7/L5pWzjlnP9ls3bgSJRgoJxAoJxSqIByuJBKpxGJJweHovkLy9JkXsmXzZioicarCMd6Y9U+uvOmWRuXmzp2LIAicdVbTHlttIRKJABCP5+FOUpAiLkjSUcJxvjVtJi6KCD3z+cu1V3b4WD9UaqIxBNGCx97YMUBTVWImMyNsdsbk5zfanzcqizwgxR+CFbVkNJHw06DjGKKmq5FMoHb/4FMGTaOEywAwWVu2mzBojK5HgZYDBppkCx5PTzyenkfsuJqmMWvWLKLRKGazGZPJhNlsxmKxYLFYGDFiBH369GlQvj1uuj+54UZe/Ocz+DUI1WXMPpTi4mJqamro378/ZnPHAyeOGzeO7du3s3zZSQzqvZo81Ypk1wlWBtgmlSAJJk4cY3g3dYTaeByzFGdl4V7sJhN2sxm72YzNYkaLhFFkE+7DaJWKWOIhNr2bpoY41jFGtasRZWP56RhGCSeyK8v2pqO/GrSEABzdgIEA8Xic/fsT/uOyLNcb3R5g7dq1XHvtteTl5dXbqUAivsqMGTMYPbp1wiA5LZ077n+w2f2zZyc8X84558gYMRcUFHDDDTfw8ssvs3nnKDLEMvp9mUWcErBC1qTTmDG8C5KQHmdEzVZm7Kltdn+qveVgghWxxPU+1WTcfjsDY1S7GslsLD8dwyjRSgBke+sN/QwSiIINVT/6uc8sFgspKSnU1tZy9913Nwh2V1ZWxqxZs3jppZcwmUzE44kbUJ8+fdi1axeVlZVHpA8+n4/i4mJycnJwu4+cbUSPHj24/fbb+dus55hfu5H5bKzfN7SH8R3tKA+fcRpn79hJWIkTjqlEVIWwohBRVaKqiiCIXDDkxBbbqIwpJMkiVskI0tcZGKKmq5EtoES6uhcG7USJVQOGqGkPouRA07rmuz9+/Hhmz57N0qVLmThxYv32rKwsbr31Vj7//HPKy8upra3F5XJx8skns2vXLhyOjscHmTt3LgsXLgSO3CzNodhsNkzjT+Gjov2c5qtACwVIz8vntILmXeYNWofVbOL0wR1LvlkRVzqcKsOgeQxR09XYU0GNQjQAFiOA27FGPFaDqOqIZuN/11YkyYEkVbNs2d+Jx4OMH/9bJOnoXOzHjh3L559/zrJlyxqIGoDk5GQuu+yyBtv27NkDwJdffsmOHTuYNm0amZltzyFVVlZWL2iSk5Pp0aNH+07gMJRGopQnpfDYj6Z1SvsG7acyphj2NJ2IMbJdjb3OI6RmN6QNALlzMy0bHFkUxYesGZFZ24PVkkUkCv7AUwAsWSIwadLvj8qxRVGkT58+7Nixg9raWjweT4vl8/Pzufjii/n666/ZvXs3zz77LB6PhzPOOIOhQ4e2WLe0tJSdO3fidDr54IMP6refeeaZR+BMmmZ/TMGtGt/L7khFLE6aIWo6DWNkuxqpTsT866TEX9EEZgeYnXV/m3o5E5HLWixXt/1AOdGIPNkZKIofWTPGtj2ccMJtlJefzbbt/0HT3iEY2t3quvvL9yGJNpKTk9udAHLKlCns2LGDL7/8kh/96EeHLT9kyBCGDBlCdXU1n3/+Odu3b+fdd99l9uzZnHTSSYwbN47FixfzzTffkJuby6mnnsqyZcvYsmVLo7ZsNhuDBw9uV79bQ6Wq40HvtPYN2k9lTKGP3drV3ThuMURNV9NrAlz9CYSrIRZs4hWAeCjxPlgBNXsal1FbER1Utn1P8DQhikz274kkZ2JJzJKUSLxprftrSTJEUh2KGkTWjZ9Re9B1jTVrf43VuheAcWPvbVW9ysqdbNgwlcI9I9i7dziQ8Ew6kCNJlmVkWcZkMmEymbBYLPUu21arFZvNhs1mw263Yzab2bp1a5v6nZKSwk9+8hPi8ThffPEFq1at4osvvuCLL74AErNAhYWFvPrqqwBkZGRw+umnE41Gee+99wBa7UHVXmoQyDPsULslCZsa45rRWRgj29WIIvQ+uWNtqPGDAiceSgihQ0VRLHTI+wPlDhFF3prvlasrq6vNH1O2gSsTknLB3cTLlZUQSZIZjuPEeYoWxnSYWCsGzSPLZcRjdlQtj9Wr/06/fpfRq9cJDcrEYiFqagqprd1DILAPn38XAHn5a3G7LycSiRCNRolGo8RiMeLxOLFYrFGOpJaoqakhOTm5TX03mUycc845nHXWWXz77besXLkSSZL4xS9+QU1NDVu2bKFHjx4UFBTU11mwYAHhcJjJkye36VhtxSvKpJuMmZruhqrrVBk2NZ2KMbLHA5IJbJ7E60ih66BEIeqHqA8i3sTrwPtYEPxl4C1KzB7tWQD+EtCbiDsiWxNeXrKt7m/dZ1PdZ7MLLK7ErJDZmRBCmz6AfmdAWkFiSU4yJWL6SKbvfTa3sO/AZ7nub13ZIyiyFCKYBcNIuD2YzXbQR2MyL0HWt6DpW1i/YRmbNuejqtVALZLkw2Rq6CGlaSIHYuHNmHE2ZnPLcUEO1kskgwwEAgSDQUKhEMFgEIvF0iG3almWmTJlClOmTKnflpWVRVZW49hFN998c7uP01riqkrAZCbHaoia7kZNXEXDCLzXmRgja9A0ggAma+LlbGXSNFWBQJ3Q8ZclXNWVSEIcKRGIf++zEgUlnBBOtYUJD7CY/2Ddym0giE0LpQ6dm9SE4DlECEnmVookE4ocJGaT2L7jUSTRiijZ6v5akUQbomRJ/BWtSJK17m/Dz6L4w3XvPP30FwmFynE6s/n669uQpPmo6m4EPEhSAWZzOlZrNk5nLklJvfAk98blzGTPnm/Zved6Nm76L6NGXtOqY4miiMPhOCJu2d2ZIp8fXRDpYf/hfq+6KwcC76Wbjf9NZ2GIGoMjhyQfXH46Euh6QlxpWiLqshqv+6sc8llJ/FVjze9rsqzSTHtNtRFrWF8J139OdXuodDupqJiLpkVQ1QiaFmlT/BVRNCOKNkTRUieILAnRUyeODm6vE0WipU401YkiqW5b/ftEnQZ160WUBUEwIXSTJUFZtpCUlEiBcPrpT7W6Xn7+KWzekktJyfOMGH5Vu9IYHK/srvUB0Mt1fIu3Y5HKuhQJhvdT52GMrEH35cCNVxRBtCSWqroZfete30fXNTQtWid0wmhatO5v4rOqRdDUCKoWRlWCie1atG5bnTBSo/XvY7HKxP66zwnxFK1/37Z0A+Ihs0SWQ94fFEwHRVVDgZUQT00LqAPiKR6vJhavRtdVdE1B1xV0XU0cS3YgSw4kyY4kO5Ele128Gked4Gqd2BJFkbxet7C//C5WrPgnJ5zQOFnkD5U9vkSeqT4eI4tzd6MiXpf3yTAU7jSMkTUw6AQEQUSSbEiSDZOpbQaobUXXdXQ9nhBOdcIoIZIide+jh7yPNFmmXjDViSpVDRKPVzcrsjStFR53hyAIEnpLhud1ZaQDgkeqEzxyQvDIkqPu/cF9yckO9peDP/AEW7aOw+XMxWw2N3i11937WKY4GEbQRXp5krq6KwbfozIWxyYKOOQf3vfyaNEmUfPss8/y7LPP1kfXHDJkCPfffz/Tp08HYOfOndx5550sWLCAaDTKtGnTeOqpp1qMvKmqKg8++CCvv/46ZWVl5OTkcM0113DvvffWP7Xpus4DDzzA888/T21tLZMmTeLZZ59t4FVgYPBDRRAEBMGMKJqRcR2VYyZmomJNiicBAbu9T90yl1T3EtC0OKoaQlWDKGow8V4J1H0OoSrBJvaFUNQgkWgZaiiAogTr21DVYH1/vpz7LJWV+Y36KUlSvTv39wXPgVdb93X3pa7SaAxHXMD0AxR03Z3KmEKaYU/TqbRJ1OTm5vLoo49SUFCAruu88sorzJw5k9WrV5Ofn8/UqVMZMWIE8+bNA+C+++5jxowZLFmypNkLwV/+8heeffZZXnnlFYYMGcKKFSu49tprcbvd3HrrrQA89thj/OMf/+CVV16hd+/e3HfffZx11lls2rQJq9UIYmRgcLRJzEQl7HRae4kWRROi6MZkOjLLIrquoaphYrEgo0bKxGIxYrFYvWt3U69D94VCoUb7DiSwbAlZlo+oUDKZTEdUKJXHVJKOfvJzg1ZQGVdIM5aeOhVBP1wAh8OQkpLCX//6V3r27Mn06dOpqakhKSkx7en1eklOTuaLL77gjDPOaLL+ueeeS2ZmJi+88EL9tosuugibzcbrr7+Oruvk5ORwxx13cOedd9a3m5mZycsvv8yll17aqn76fD7cbjder7e+fwYGBgaHomlafZybtoqk5vYpinLY45pMpiMmlM79djWyAF9O72D8K4MjzpXrEjGWXhtuJBdtC225f7dbMqqqyjvvvEMwGGTChAns3LkTQRCwWA4ac1qtVkRRZMGCBc2KmokTJ/Lcc8+xbds2+vfvz9q1a1mwYAGPP/44ALt376asrKxBfbfbzYknnsjixYtbLWoMDAwMDocoilgslgbXsY6iaVq7xFAsFiMSieDz+RptV9Xm7ZOqR51ChSuZgd+txymLJEkSLrnuJYn175MkKbFflnBJEi45sS9JlnBKEkmyiLmbL7Uda1TGFAY5jdWFzqTNomb9+vVMmDCBSCSC0+nk/fffZ/DgwaSnp+NwOPjd737Hn//8Z3Rd56677kJVVUpLS5tt76677sLn8zFw4EAkSUJVVR5++GEuv/xyIJHVFmhkl5OZmVm/rykORBg9gM/na+upGhgYGHQYURSxWq1HdKlcVdVmhdCIUJQKTyoxyURA1fApKj5FJaCq7I8p7AxF8akqfkXDr6jEWpist4hCA8HjkupETxNiKbFdIulQ4SRLOCQRqZuEEOhqjOWnzqfNoztgwADWrFmD1+vl3Xff5eqrr+abb75h8ODBvPPOO9x000384x//QBRFLrvsMkaPHt3ievHbb7/NG2+8wZtvvsmQIUNYs2YNv/71r8nJyeHqq69u94k98sgjPPTQQ+2ub2BgYNBdkSSpPofV9xnYxraiWkL4BBStTuzUvdQD21V8ikZATYgjv6JRGI7hrxdLCXHUkhmPUzooilx1s0MHZoOcdbNGTQqn+joSNlHoNvGV2kvCUNgQNZ1Jm0fXbDbTr18/AMaMGcPy5ct58sknmTVrFlOnTmXnzp1UVlYiyzIej4esrCz69Gl+/fA3v/kNd911V/0y0rBhwygsLOSRRx7h6quvrg81vn//frKzs+vr7d+/n5EjRzbb7t13383tt99e/9nn89GzZ8+2nq6BgYHBcY1FFEk3i6R3IIWZruuEVK3BDJBfrRNDdeLHf2BfnTjyKgpFEa1ue6JsWGteGskCuKS62SBZrBc7hy6rJcRSnRhqUkRJmMSuEUZBRSWsaYb3UyfTYcmoaVqDZR6AtLQ0AObNm0d5eTnnnXdes/VDoVCjmRxJktDqvty9e/cmKyuLr776ql7E+Hw+li5dyk033dRsu0d6XdzAwMDAoGkEIRF7xSFLZHfgsqtoer3I8dfNAB2YDfIpDWeRDgin0miM7YrWQDjFW1hSs4pCI8FT/5IOvm+075A67bE1qqwLvGcsP3UubRrdu+++m+nTp9OrVy/8fj9vvvkm8+fPZ86cOQC89NJLDBo0iPT0dBYvXsyvfvUrbrvtNgYMGFDfxumnn84FF1zALbckIoDOmDGDhx9+mF69ejFkyBBWr17N448/znXXXQckfiy//vWv+dOf/kRBQUG9S3dOTg7nn3/+ERoGAwMDA4OuRhYFkkWZ5A7c+HVdJ1ovjrR6e6IDS2cHZ4bq9qsqvrhKaTSOX1Hx1gmnsNayrZHzwJKZlLAbOjBrdHCpLbG0duBzWTQRLsBYfupc2jS65eXlXHXVVZSWluJ2uxk+fDhz5szhzDPPBGDr1q3cfffdVFdXk5+fzz333MNtt93WoI0Dy1MHeOqpp7jvvvu4+eabKS8vJycnh5/97Gfcf//99WV++9vfEgwGufHGG6mtreWkk07i888/N2LUGBgYGBg0QBAErJKAVerYklpM0+pF0QFbI2+d7VFATfw9IJACamJbWTRO4JAZo6DaUBzJAmRbjOWnzqTDcWqOFYw4NQYGBgYGR5u4phOoEz9mUSTLEDVt5qjEqTEwMDAwMDBoGdMRWFIzaD1GZCUDAwMDAwOD4wJD1BgYGBgYGBgcFxiixsDAwMDAwOC4wBA1BgYGBgYGBscFhqgxMDAwMDAwOC4wRI2BgYGBgYHBcYEhagwMDAwMDAyOCwxRY2BgYGBgYHBcYIgaAwMDAwMDg+MCQ9QYGBgYGBgYHBcYosbAwMDAwMDguMAQNQYGBgYGBgbHBYaoMTAwMDAwMDgu+MGkDdV1HUikMDcwMDAwMDA4Njhw3z5wH2+JH4yo8fv9APTs2bOLe2JgYGBgYGDQVvx+P263u8Uygt4a6XMcoGkaJSUluFwuBEHo6u4cM/h8Pnr27Mm+fftISkrq6u4ctxjjfPQwxvroYIzz0eGHMM66ruP3+8nJyUEUW7aa+cHM1IiiSG5ubld345glKSnpuP3BdCeMcT56GGN9dDDG+ehwvI/z4WZoDmAYChsYGBgYGBgcFxiixsDAwMDAwOC4wBA1Bi1isVh44IEHsFgsXd2V4xpjnI8exlgfHYxxPjoY49yQH4yhsIGBgYGBgcHxjTFTY2BgYGBgYHBcYIgaAwMDAwMDg+MCQ9QYGBgYGBgYHBcYosbAwMDAwMDguMAQNT9wtm3bxsyZM0lLSyMpKYmTTjqJr7/+un5/VVUV06ZNIycnB4vFQs+ePbnllltazKG1Z88err/+enr37o3NZqNv37488MADxGKxo3FK3ZLOGGeAhx9+mIkTJ2K32/F4PJ18FscGnTXW1dXVXH755SQlJeHxeLj++usJBAKdfTrdlsON89q1a7nsssvo2bMnNpuNQYMG8eSTTx623VWrVnHmmWfi8XhITU3lxhtv/EGPM3TeWB+u3WMRQ9T8wDn33HNRFIV58+axcuVKRowYwbnnnktZWRmQiMQ8c+ZMPvroI7Zt28bLL7/Ml19+yc9//vNm29yyZQuapjFr1iw2btzIE088wb/+9S9+//vfH63T6nZ0xjgDxGIxLr74Ym666aajcRrHBJ011pdffjkbN25k7ty5fPLJJ3z77bfceOONR+OUuiWHG+eVK1eSkZHB66+/zsaNG7nnnnu4++67efrpp5tts6SkhDPOOIN+/fqxdOlSPv/8czZu3Mg111xzlM6qe9IZY92ado9JdIMfLBUVFTqgf/vtt/XbfD6fDuhz585ttt6TTz6p5+bmtulYjz32mN67d+929/VY5miM80svvaS73e6OdvWYp7PGetOmTTqgL1++vH7bZ599pguCoBcXFx+Zzh9DtHecb775Zn3y5MnN7p81a5aekZGhq6pav23dunU6oG/fvv3IdP4Yo7PGur3tdneMmZofMKmpqQwYMIBXX32VYDCIoijMmjWLjIwMxowZ02SdkpIS3nvvPU499dQ2Hcvr9ZKSknIkun3McTTH+YdOZ4314sWL8Xg8jB07tn7bGWecgSiKLF269IifR3enPeMMh78ORKNRzGZzg6SFNpsNgAULFhy5EziG6Kyxbm+73Z6uVlUGXcu+ffv0MWPG6IIg6JIk6dnZ2fqqVasalbv00kt1m82mA/qMGTP0cDjc6mNs375dT0pK0p977rkj2fVjis4eZ2Om5iCdMdYPP/yw3r9//0bb09PT9X/+859HtP/HCq0d5wMsXLhQl2VZnzNnTrNlNmzYoMuyrD/22GN6NBrVq6ur9YsuukgH9D//+c+dcRrHBJ0x1u1p91jAmKk5DrnrrrsQBKHF15YtW9B1nV/84hdkZGTw3XffsWzZMs4//3xmzJhBaWlpgzafeOIJVq1axYcffsjOnTu5/fbbW9WX4uJipk2bxsUXX8xPf/rTzjjdLqM7jfPxjjHWR4fOGGeADRs2MHPmTB544AGmTp3a7PGHDBnCK6+8wt/+9jfsdjtZWVn07t2bzMzMBrM3xwNdPdZtbfeYoSsVlUHnUF5erm/evLnFVzQa1b/88ktdFEXd6/U2qN+vXz/9kUceabb97777Tgf0kpKSFvtRXFysFxQU6FdeeWWDNfLjhe4yzrp+/M/UdPVYv/DCC7rH42mwLR6P65Ik6e+9917HT7Cb0BnjvHHjRj0jI0P//e9/36a+lJWV6X6/Xw8EArooivrbb7/d4fPrTnT1WLf3t9LdkbtYUxl0Aunp6aSnpx+2XCgUAmj0BCSKIpqmNVvvwL5oNNpsmeLiYiZPnsyYMWN46aWXjrunLOge4/xDoavHesKECdTW1rJy5cp6e4N58+ahaRonnnhiq87hWOBIj/PGjRuZMmUKV199NQ8//HCb+pKZmQnAiy++iNVq5cwzz2xT/e5OV491e38r3Z6uVlUGXUdFRYWempqqX3jhhfqaNWv0rVu36nfeeaduMpn0NWvW6Lqu659++qn+4osv6uvXr9d3796tf/LJJ/qgQYP0SZMm1bezdOlSfcCAAXpRUZGu67peVFSk9+vXTz/99NP1oqIivbS0tP71Q6SzxlnXdb2wsFBfvXq1/tBDD+lOp1NfvXq1vnr1at3v9x/18+wOdOZYT5s2TR81apS+dOlSfcGCBXpBQYF+2WWXHfVz7A60ZpzXr1+vp6en61dccUWDa0B5eXl9O02N81NPPaWvXLlS37p1q/7000/rNptNf/LJJ4/6OXYXOmusW9PusYghan7gLF++XJ86daqekpKiu1wuffz48frs2bPr98+bN0+fMGGC7na7davV+v/t2jGKg0AYhmG3SSUpcgErW+9jESSnSOldvMgcJScIHuHbYiGVkMqQHZ8H7AZhfixenEnf97nf71nX9bWmlJKmafJ4PJL8HYU0TbP5HNUec06SaZo251xK+dzmvsxes34+nxnHMW3b5nw+53a7HTYek/dznud589vsuu61ZmvO1+s1l8slp9MpwzBkWZYP7uo77TXrd+/9j36S5FN/hQAA9lLfRQcA4JBEDQBQBVEDAFRB1AAAVRA1AEAVRA0AUAVRAwBUQdQAAFUQNQBAFUQNAFAFUQMAVEHUAABV+AXIIl9LL9ukrAAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(\"plotting the muni-unit geoms\")\n",
    "for c in liveCountyList:\n",
    "    for u in countyUnitList[c]:\n",
    "        plotPoly(unitGeom[u])\n",
    "    plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 233,
   "id": "58b4e5d2-4053-4c6e-8dd2-dab43b079f51",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Here are the unsplittable municipalities, between 50pct and 105% of a district\n",
      "and which ones are 0.4 - 0.5 aDP?\n"
     ]
    }
   ],
   "source": [
    "unsplittableUnits = list()\n",
    "print(\"Here are the unsplittable municipalities, between 50pct and 105% of a district\")\n",
    "for u in range(nUnits):\n",
    "    aDP = countyADP[unitCountyNo[u]]\n",
    "    if unitPop[u] < 1.05*aDP and unitPop[u] > 0.5 * aDP:\n",
    "        unsplittableUnits.append(u)\n",
    "        print(u, r3(unitPop[u]),unitCountyNo[u])\n",
    "print(\"and which ones are 0.4 - 0.5 aDP?\")\n",
    "for u in range(nUnits):\n",
    "    aDP = countyADP[unitCountyNo[u]]\n",
    "    if unitPop[u] < 0.5*aDP and unitPop[u] > 0.4 * aDP:\n",
    "        print(\"   \",u, r3(unitPop[u]),unitCountyNo[u])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 234,
   "id": "22ab74a7-645d-4a95-96f4-38ce94ae88db",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Pull in the any-split Home Districts ...\n",
      "Now convert (approximately) to full VTD lists. Our traditional approach for partials binary in-out if frac > 0.5\n",
      "Lets compare our true HDpops to this partial-based calculation\n"
     ]
    },
    {
     "data": {
      "image/png": "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KAjx8fF4/vnnDfZO8trfv/BS33//vXjmmWfE119/LQCIb775xuDxl156SYSFhYmNGzeKX375RYwZM0bExcWJqqoqfZu0tDSRmJgo9u7dK3788UfRvXt3MWnSJP3jKpVKREVFicmTJ4v8/Hzx2WefiaCgIPH+++876zKNSk1NFR9//LHIz88XeXl54o477hCdO3cW5eXl+jbTp08XnTp1EtnZ2eLnn38WN910k7j55pv1j9fX14vevXuLlJQUcfDgQfH999+LyMhIkZ6erm9z4sQJERwcLObOnSsKCgrE22+/Lfz8/ERmZqZTr7ep7777TmzevFn8/vvv4ujRo+Lpp58W/v7+Ij8/Xwjh3dfeVG5urujatavo27evePzxx/XHvf1nsHjxYnHDDTeI4uJi/dfFixf1j3v79ZeWloouXbqI+++/X+zbt0+cOHFCbNmyRRw/flzfxpvfAy9cuGDwu8/KyhIAxPbt24UQ3v/7f+GFF0S7du3Ef/7zH1FUVCS++uor0bp1a7Fy5Up9G2/9/XttUNNY06BGq9UKpVIpXn31Vf2xsrIyoVAoxGeffSaEEKKgoEAAED/99JO+zQ8//CBkMpk4e/asEEKI9957T7Rt21bU1NTo28yfP19cf/31Dr4i21y4cEEAEDt37hRCNFyrv7+/+Oqrr/Rtjhw5IgCInJwcIURDUCiXy0VJSYm+zapVq0RoaKj+eufNmyduuOEGg9eaMGGCSE1NdfQl2axt27biww8/9Klrv3r1qujRo4fIysoSt912mz6o8YWfweLFi0ViYqLRx3zh+ufPny+GDh1q8nFfew98/PHHRXx8vNBqtT7x+x81apR44IEHDI7dddddYvLkyUII7/79e+30kzlFRUUoKSlBSkqK/lhYWBiSkpKQk5MDAMjJyUF4eDgGDRqkb5OSkgK5XI59+/bp29x6660ICAjQt0lNTcXRo0dx5coVJ12NZSqVCgAQEREBANi/fz/q6uoMrr9nz57o3LmzwfX36dMHUVFR+japqalQq9X49ddf9W0an0PXRncOd6DRaPD555+joqICycnJPnXtM2fOxKhRo5r101d+BseOHUNMTAy6deuGyZMn4/Tp0wB84/q/++47DBo0CHfffTc6dOiA/v37Y82aNfrHfek9sLa2FhkZGXjggQcgk8l84vd/8803Izs7G7///jsA4JdffsHu3bsxcuRIAN79+/fJoKakpAQADP5gdd/rHispKUGHDh0MHm/VqhUiIiIM2hg7R+PXcDWtVovZs2djyJAh6N27N4CGvgUEBCA8PNygbdPrt3Rtptqo1WpUVVU54nKsdvjwYbRu3RoKhQLTp0/HN998g4SEBJ+4dgD4/PPPceDAASxfvrzZY77wM0hKSsLatWuRmZmJVatWoaioCLfccguuXr3qE9d/4sQJrFq1Cj169MCWLVswY8YMPPbYY/jkk08A+NZ74MaNG1FWVob7778fgG/8/S9YsAATJ05Ez5494e/vj/79+2P27NmYPHkyAO/+/fvMLt2+aubMmcjPz8fu3btd3RWnuv7665GXlweVSoV//etfmDJlCnbu3OnqbjnFmTNn8PjjjyMrKwuBgYGu7o5L6D6RAkDfvn2RlJSELl264Msvv0RQUJALe+YcWq0WgwYNwosvvggA6N+/P/Lz87F69WpMmTLFxb1zro8++ggjR45ETEyMq7viNF9++SXWr1+PDRs24IYbbkBeXh5mz56NmJgYr//9++RIjVKpBIBm2e7nz5/XP6ZUKnHhwgWDx+vr61FaWmrQxtg5Gr+GK82aNQv/+c9/sH37dnTs2FF/XKlUora2FmVlZQbtm16/pWsz1SY0NNTlN46AgAB0794dAwcOxPLly5GYmIiVK1f6xLXv378fFy5cwIABA9CqVSu0atUKO3fuxFtvvYVWrVohKirK638GTYWHh+O6667D8ePHfeJvIDo6GgkJCQbHevXqpZ+C85X3wFOnTmHr1q148MEH9cd84ff/1FNP6Udr+vTpg3vvvRdz5szRj9x68+/fJ4OauLg4KJVKZGdn64+p1Wrs27cPycnJAIDk5GSUlZVh//79+jbbtm2DVqtFUlKSvs2uXbtQV1enb5OVlYXrr78ebdu2ddLVNCeEwKxZs/DNN99g27ZtiIuLM3h84MCB8Pf3N7j+o0eP4vTp0wbXf/jwYYM/6qysLISGhurfLJOTkw3OoWujO4c70Wq1qKmp8YlrHzFiBA4fPoy8vDz916BBgzB58mT9v739Z9BUeXk5CgsLER0d7RN/A0OGDGlWxuH3339Hly5dAHj/e6DOxx9/jA4dOmDUqFH6Y77w+6+srIRcbnh79/Pzg1arBeDlv3+XpSg72NWrV8XBgwfFwYMHBQDxxhtviIMHD4pTp04JIRqWs4WHh4tvv/1WHDp0SIwdO9bocrb+/fuLffv2id27d4sePXoYLGcrKysTUVFR4t577xX5+fni888/F8HBwS5fzjhjxgwRFhYmduzYYbCssbKyUt9m+vTponPnzmLbtm3i559/FsnJySI5OVn/uG5J41//+leRl5cnMjMzRfv27Y0uaXzqqafEkSNHxLvvvusWSxoXLFggdu7cKYqKisShQ4fEggULhEwmE//973+FEN597aY0Xv0khPf/DJ544gmxY8cOUVRUJPbs2SNSUlJEZGSkuHDhghDC+68/NzdXtGrVSrzwwgvi2LFjYv369SI4OFhkZGTo23jze6AQQmg0GtG5c2cxf/78Zo95++9/ypQpIjY2Vr+k++uvvxaRkZFi3rx5+jbe+vv32qBm+/btAkCzrylTpgghGpa0LVy4UERFRQmFQiFGjBghjh49anCOy5cvi0mTJonWrVuL0NBQMXXqVHH16lWDNr/88osYOnSoUCgUIjY2Vrz00kvOukSTjF03APHxxx/r21RVVYlHHnlEtG3bVgQHB4tx48aJ4uJig/OcPHlSjBw5UgQFBYnIyEjxxBNPiLq6OoM227dvF/369RMBAQGiW7duBq/hKg888IDo0qWLCAgIEO3btxcjRozQBzRCePe1m9I0qPH2n8GECRNEdHS0CAgIELGxsWLChAkGNVq8/fqFEGLTpk2id+/eQqFQiJ49e4oPPvjA4HFvfg8UQogtW7YIAM2uSQjv//2r1Wrx+OOPi86dO4vAwEDRrVs38cwzzxgsvfbW379MiEYlBomIiIg8lE/m1BAREZH3YVBDREREXoFBDREREXkFBjVERETkFRjUEBERkVdgUENERERegUENEREReQUGNUREROQVGNQQERGRV2BQQ0RERF6BQQ0RERF5BQY1RERE5BX+PxZZ6Y6Qj/i+AAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(\"Pull in the any-split Home Districts ...\")\n",
    "infile = \"./2024state_HD_output/OH8941FrankHamLegislPatchedVTDs.csv\"\n",
    "HDdf = pd.read_csv(infile)\n",
    "HDvtdListString, partialString, fracString = HDdf[\"HDvtdList\"], HDdf[\"partials\"],HDdf[\"HDvtdFrac\"]\n",
    "HDCPx, HDCPy, HDwt = HDdf[\"centroid x\"],HDdf[\"centroid y\"], HDdf[\"HDweight\"]\n",
    "HDvTruePop = HDdf[\"HDvPop\"]\n",
    "HDCP = [Point(HDCPx[v], HDCPy[v]) for v in range(nVTDs)]\n",
    "hdCP = HDCP.copy() #nomenclature\n",
    "nHDs = len(HDvtdListString)\n",
    "HDvtdList = [ast.literal_eval(HDvtdListString[h]) for h in range(nHDs)]\n",
    "HDpartials = [ast.literal_eval(partialString[h]) for h in range(nHDs)]\n",
    "HDvtdFrac = [ast.literal_eval(fracString[h]) for h in range(nHDs)]\n",
    "print(\"Now convert (approximately) to full VTD lists. Our traditional approach for partials binary in-out if frac > 0.5\")\n",
    "for h in range(nHDs):\n",
    "    for i, frac in enumerate(HDvtdFrac[h]):\n",
    "        if frac >= 0.5:\n",
    "            HDvtdList[h].append(HDpartials[h][i])\n",
    "print(\"Lets compare our true HDpops to this partial-based calculation\")\n",
    "HDvtdPop = [np.sum ([ tractPop[v] for v in HDvtdList[h] ] ) for h in range(nHDs) ]\n",
    "popRatio = [(HDvtdPop[h] + 0.0001) / (HDvTruePop[h] + 0.0001) for h in popHDlist ]\n",
    "plt.scatter([h for h in popHDlist], popRatio, label=\"converted to true pop\")\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 235,
   "id": "2ada93cf-0239-485d-a323-eac446e93002",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Now snap each HD to units.  Each HD is assigned its home muni, then we build out whole munis, then ...\n",
      "... we add munis that were partially included, biasing toward close, mostly full ones\n",
      "prior to defining homeUs, we had 1447 active HDs\n",
      "now we have 1447 active HDs\n",
      "working on snapping HD 6789 in unit 0 to whole munis\n",
      "HD 1568  has only 0.0 pop/aDP. We will swell by nearest munis to shore it up\n"
     ]
    }
   ],
   "source": [
    "print(\"Now snap each HD to units.  Each HD is assigned its home muni, then we build out whole munis, then ...\")\n",
    "print(\"... we add munis that were partially included, biasing toward close, mostly full ones\")\n",
    "minSnapFrac, minEligFrac = 0.667, 0.1 #we auto-add contig munis at least this full in HDvtdList\n",
    "homeU, HDvPop, HDunitList = [-888]*nHDs, [0.]*nHDs, [list() for h in range(nHDs) ]\n",
    "print(\"prior to defining homeUs, we had\",len(popHDlist),\"active HDs\")\n",
    "popHDlist = list()\n",
    "for u in range(nUnits):\n",
    "    origArea = np.sum( [tractArea[v] for v in unitVTDlist[u] ] )\n",
    "    origL = origArea ** 0.5  #characteristic local district diameter\n",
    "    for v in unitVTDlist[u]:\n",
    "        homeU[v] = u\n",
    "        popHDlist.append(v)\n",
    "print(\"now we have\",len(popHDlist),\"active HDs\")\n",
    "for nh,h in enumerate(popHDlist):\n",
    "    aDP = countyADP[countyNo[h]]\n",
    "    if nh%2000 == 0:\n",
    "        print(\"working on snapping HD\",h,\"in unit\",homeU[h],\"to whole munis\")\n",
    "    currPop, addedUset = unitPop[homeU[h]], { homeU[h] }\n",
    "    useFrac = [0.]*nUnits\n",
    "    for v in HDvtdList[h]:\n",
    "        useFrac[homeU[v]] += tractPop[v] / unitPop[homeU[v]]\n",
    "    shouldAddUset, hasFracUset = set(), set()\n",
    "    for u in range(nUnits):\n",
    "        if useFrac[u] > minSnapFrac :  #munis more than 2/3 captured should be snapped if contig path found\n",
    "            shouldAddUset.add(u)\n",
    "        if useFrac[u] > minEligFrac :  #munis that were at least 10% captured are eligible to be snapped\n",
    "            hasFracUset.add(u)\n",
    "    shouldAddUset = shouldAddUset.difference(addedUset)  #at this point, this knocks out just the home muni\n",
    "    nJustAdded = 1\n",
    "    while nJustAdded > 0 and currPop < aDP:  #this block -- add all mostly full HDs that are contig to growing list\n",
    "        nJustAdded = 0\n",
    "        canAddUset = set()\n",
    "        for u in addedUset:  #building all neighbors of in-HD munis\n",
    "            canAddUset = canAddUset.union(set(unitNbrs[u]) )\n",
    "        canAddUset = canAddUset.intersection( shouldAddUset.difference(addedUset) ) #whittling to eligible list\n",
    "        for u in canAddUset:\n",
    "            if currPop + 0.8 * unitPop[u] < 1.05 * aDP: #prevent big overadds\n",
    "                currPop += unitPop[u]\n",
    "                addedUset.add(u)\n",
    "                nJustAdded +=1\n",
    "            if currPop > 0.95 * aDP:  #it's OK if we go way over; we'll trim back later\n",
    "                break\n",
    "    # OK, we've added the 2/3 full munis.  Now add more contiguous partials if needed\n",
    "    eligibleSet = hasFracUset.difference(addedUset)\n",
    "    for u in list(eligibleSet):\n",
    "        if currPop + 0.8 * unitPop[u] > 1.05 * aDP:\n",
    "            eligibleSet.remove(u)\n",
    "    contigAddableSet = set()  #the eligible units adjacent to the current (growing) set of units\n",
    "    for u in addedUset:\n",
    "        contigAddableSet = contigAddableSet.union(set(unitNbrs[u]).intersection(eligibleSet))\n",
    "    while currPop < 0.95 * aDP and len(contigAddableSet) > 0:  #add close, mostly used munis\n",
    "        canAddUlist = list(contigAddableSet)\n",
    "        canAddScores = [ unitCP[u].distance(HDCP[h])/origL * (1. - useFrac[u]) for u in canAddUlist]\n",
    "        addIdx = canAddScores.index(np.min(canAddScores))\n",
    "        u = canAddUlist[addIdx]\n",
    "        currPop += unitPop[u]\n",
    "        addedUset.add(u)\n",
    "        contigAddableSet.remove(u)\n",
    "        eligibleSet.remove(u)\n",
    "        contigAddableSet = contigAddableSet.union(set(unitNbrs[u]).intersection(eligibleSet))\n",
    "        for u in list(contigAddableSet):\n",
    "            if currPop + 0.8 * unitPop[u] > 1.05 * aDP: #prevent big overadds\n",
    "                contigAddableSet.remove(u)\n",
    "    if currPop < 0.2 * aDP:\n",
    "        print(\"HD\",h,\" has only\",r3(currPop/aDP),\"pop/aDP. We will swell by nearest munis to shore it up\")\n",
    "        canAddUset = set(unitNbrs[homeU[h]])\n",
    "        for u in addedUset:\n",
    "            canAddUset = canAddUset.intersection(unitNbrs[u])\n",
    "        canAddUset = canAddUset.difference(addedUset)\n",
    "        while currPop < 0.95 * aDP and len(canAddUset) > 0:  #add close munis, biasing towards highly used\n",
    "            canAddUlist = list(canAddUset)\n",
    "            canAddScores = [ unitCP[u].distance(HDCP[h])/origL * (1. - useFrac[u]) for u in canAddUlist]\n",
    "            addIdx = canAddScores.index(np.min(canAddScores))\n",
    "            u = canAddUlist[addIdx]\n",
    "            currPop += unitPop[u]\n",
    "            addedUset.add(u)\n",
    "            canAddUset.remove(u)\n",
    "            for uu in unitNbrs[u]:\n",
    "                if useFrac[uu] > 0 and uu not in addedUset:\n",
    "                    canAddUset.add(uu)\n",
    "            for u in list(canAddUset):\n",
    "                if currPop + 0.8 * unitPop[u] > 1.05 * aDP: #prevent big overadds\n",
    "                    canAddUset.remove(u)\n",
    "\n",
    "    HDvPop[h] = currPop\n",
    "    HDunitList[h] = list(addedUset)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 199,
   "id": "6661a3c6-3d32-49a8-8ac2-06d1a85af6e9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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z/HTaTahJi8vD4D4+HiHKxEREZG6ysvLIyoq6rSPcVm1iT5+wOPxsH//fiIiInC5XE6XU01ubi7x8fHs2bOHyMhIp8tpcnT+Gkbnr2F0/hpG569hmsP5syyLvLw8OnTogNt9+l4zzaalxu1206lTJ6fLOK3IyEi//aVsDDp/DaPz1zA6fw2j89cw/n7+fqqFppI6CouIiIhfUKgRERERv6BQ4wNCQkJ44IEHCAkJcbqUJknnr2F0/hpG569hdP4aRuevumbTUVhERET8m1pqRERExC8o1IiIiIhfUKgRERERv6BQIyIiIn5BoaYRfPPNN1xxxRXExMQQGRnJhRdeyEcffVTjYw8fPkynTp1wuVwcO3bMtuM2Zd44fytWrMDlctW4bdiwwUvvxBne+v0DePfddxk0aBAtWrSgdevWTJgwwd7ifYC3zl/Xrl1/9Lv32GOPeeEdOMubv38AxcXF9OvXD5fLxZYtW+wr3Ed46/yNHz+ezp07ExoaSvv27bn++uvZv3+/F95B41KoaQSXX345ZWVlpKWlsWnTJvr27cvll19OVlbWjx574403kpiYaPtxmzJvnL8LLriAzMzMattNN91Et27dOO+887zxNhzjrd+/N998k+uvv55f/vKXfP7556xZs4brrrvO7vId563zB/DQQw9V+x287bbb7CzdJ3jz/AHcc889dOjQwa5yfY63zt8ll1zCG2+8QXp6Om+++SYZGRlcddVVdpff+CzxqoMHD1qAtWrVqqrbcnNzLcD64IMPqj32ueeesy6++GJr+fLlFmAdPXrUluM2Zd46fz9UUlJixcbGWg899JBdpfsEb52/0tJSq2PHjtbzzz/vrdJ9gjd//7p06WI9+eSTXqjad3j73+97771n9erVy9q2bZsFWJs3b7b5HTirsf7/syzLWrx4seVyuaySkhI7SneMQo2XeTweKyEhwbrpppus/Px8q7S01HriiSestm3bWkeOHKl63LZt26y4uDjr+++/tz766KOf/KWs7XGbOm+dvx9auHCh5Xa7rT179njhXTjHW+dv/fr1FmD95z//sfr162fFxcVZY8eOtbZu3doI76rxePP3r0uXLla7du2s6Ohoq1+/ftbjjz9ulZaWevkdNS5vnr+srCyrY8eO1oYNG6ydO3f6ZahprP//Dh8+bE2ePNkaMmSIF95F41KoaQR79uyxBgwYYLlcLisgIMBq37699dlnn1XdX1RUZCUmJlovv/yyZVlWrX8pf+q4/sJb5+9kycnJVnJyst2l+wRvnL/XXnvNAqzOnTtbCxcutDZu3Ghde+21Vps2bazDhw97+y01Km/9/v3lL3+xPvroI+vzzz+3Zs+ebbVq1cpKSUnx5ltxhDfOn8fjscaOHWs9/PDDlmVZfhtqLMu7///dc889VsuWLS3AGjx4sHXo0CFvvY1Go1BTTzNnzrSA025ff/215fF4rPHjx1vJycnW6tWrrU2bNlnTpk2zOnbsaO3fv9+yLMtKSUmxrr766qpj1/Yf9U8d15c5ff5OtmfPHsvtdlsLFy70xlv1CqfP36uvvmoB1pw5c6puKyoqsmJiYqx//OMfXnvfdnH6/NXk3//+txUYGGgVFRXZ+Va9wunz9/TTT1tDhgyxysrKLMtqeqHG6fNX6eDBg1Z6erq1bNkya8iQIdall15qeTweb73tRqFQU0/Z2dnW119/fdqtuLjY+vDDDy23223l5ORUe37Pnj2tWbNmWZZlWX379rXcbrcVEBBgBQQEWG632wKsgIAA6/7776/x9WtzXF/m9Pk72UMPPWTFxsY2qWvJTp+/tLQ0C7A+/vjjareff/751u9//3vvvGkbOX3+avLll19agLV9+3Zb36s3OH3+rrjiimrPCQgIqHrOlClTvP7+G8rp81eTPXv2WID1ySef2PpeG1vgqbsQy+nExsYSGxv7k48rLCwEwO2uPtDM7Xbj8XgAM4rk+PHjVfdt2LCBX/3qV3z88cf06NGj3sf1ZU6fv0qWZTF37lymTJlCUFBQXd+GY5w+fwMGDCAkJIT09HQuvPBCAEpLS9m1axddunSp13tqTE6fv5ps2bIFt9tN27Zta/0cpzh9/p555hn+9Kc/VX2/f/9+xowZw+uvv86gQYPq/H4am9PnryaVxysuLq71c3yS06nK3x08eNBq06aNdeWVV1pbtmyx0tPTrbvvvtsKCgqytmzZUuNzamo+XL9+vZWQkGDt3bu33sdtirx1/ip9+OGHVU29/sib5+/222+3OnbsaC1dutTavn27deONN/pdR3Vvnb9PPvnEevLJJ60tW7ZYGRkZ1iuvvGLFxsY2iVaGuvD2v99KTe3yU2156/ytW7fO+tvf/mZt3rzZ2rVrl7V8+XLrggsusHr06NEkLn+ejuap8bKYmBjef/998vPzGT58OOeddx6rV69m8eLF9O3bt9bHKSwsJD09ndLSUluP6+u8df4q/fvf/+aCCy6gV69edpfuE7x5/p544gmuueYarr/+egYOHMj3339PWloarVu39sZbcYS3zl9ISAjz58/n4osv5qyzzuKRRx4hJSWFf/7zn956K47w9r9ff+et89eyZUveeustRowYQUJCQtX8NitXriQkJMRbb6dRuCzLspwuQkRERKSh1FIjIiIifkGhRkRERPyCQo2IiIj4BYUaERER8QsKNSIiIuIXFGpERETELyjUiIiIiF9QqBERERG/oFAjIiIifkGhRkRERPyCQo2IiIj4BYUaERER8Qv/Hz5EUi7UWVKFAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plotPoly(unitGeom[homeU[1568]])\n",
    "plotPoly(countyGeom[countyNo[1568]])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 200,
   "id": "3507049b-7e57-4aeb-9033-754a2c74674d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1 is our faked number of home districts to equalize uses\n"
     ]
    }
   ],
   "source": [
    "print(nDistricts,\"is our faked number of home districts to equalize uses\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 236,
   "id": "2374334c-c415-46b0-9807-485b6a20055b",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "lets plot our muni-snapped HD pops vs. orig pops\n"
     ]
    },
    {
     "data": {
      "image/png": "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6ve//70kadiwYaqoqNDSpUs1fvz4Th7dheP111/XK6+8oj//+c8aPHiwysvLNXXqVKWkpDBPCJmGhgbdeeedMsZoyZIlnT2ckOCMUAfq3bu3wsPDz7jzp7q6Wm63u5NG1T4mT56sNWvWaP369erTp4+13e1268SJE6qtrQ2oP3UO3G73Weeoue1cNS6XSzExMRf8XJeVlengwYMaPny4IiIiFBERoQ0bNmjRokWKiIhQUlIS8/R/kpOTNWjQoIBtV1xxhfbs2SPpm2M91zG43W4dPHgwoL2xsVE1NTUhmc8LYa6mT59unRVKT0/Xvffeq4cfftg648g8nelCmpNgxtLZmkPQl19+qcLCQutskNS154kg1IGioqI0YsQIFRUVWdv8fr+KioqUlZXViSMLHWOMJk+erDfffFPr1q1TWlpaQPuIESMUGRkZMAeVlZXas2ePNQdZWVnavn17wD+q5n90zV+IWVlZAX001zT3caHP9Y033qjt27ervLzceo0cOVJ5eXnWfzNPJ1177bVnLMHw2WefqV+/fpKktLQ0ud3ugGPw+XwqKSkJmKva2lqVlZVZNevWrZPf71dmZqZVs3HjRjU0NFg1hYWFGjBggHr27GnVnGs+O9OxY8fkcAR+pIeHh8vv90tins7mQpqTYMbSmZpD0O7du/WXv/xFvXr1Cmjv0vPUpkus0WYrVqwwTqfTLF++3OzcudNMnDjRxMfHB9z505VNmjTJxMXFmffff98cOHDAeh07dsyqeeihh0zfvn3NunXrzObNm01WVpbJysqy2ptvCx89erQpLy83BQUF5nvf+95ZbwufPn262bVrl1m8ePFZbwvvSnN96l1jxjBPzUpLS01ERIR56qmnzO7du80rr7xiYmNjzcsvv2zVzJ8/38THx5u33nrLbNu2zdx2221nvQV62LBhpqSkxHzwwQemf//+Abf21tbWmqSkJHPvvfeaiooKs2LFChMbG3vGrb0RERHm6aefNrt27TJz5sy5YG6fHz9+vLnooous2+ffeOMN07t3bzNjxgyrxo7zdPjwYbN161azdetWI8n8y7/8i9m6dat1t9OFNCfBjKUz5unEiRPm1ltvNX369DHl5eUBn+2n3gHWVeeJINQJnnvuOdO3b18TFRVlMjIyzMcff9zZQwoZSWd9vfjii1bN8ePHzS9+8QvTs2dPExsba3784x+bAwcOBPTzxRdfmJtuusnExMSY3r17m0ceecQ0NDQE1Kxfv94MHTrUREVFmUsuuSRgH8260lyfHoSYp2+sXr3aDBkyxDidTjNw4ECzbNmygHa/32+eeOIJk5SUZJxOp7nxxhtNZWVlQM3XX39txo0bZ7p3725cLpe5//77zeHDhwNqPvnkEzNq1CjjdDrNRRddZObPn3/GWF5//XVz+eWXm6ioKDN48GDzzjvvhP6A28Dn85kpU6aYvn37mujoaHPJJZeYxx57LOCLyo7ztH79+rN+Jo0fP94Yc2HNSTBjaS/nmqeqqqoWP9vXr19v9dFV5ynMmFOWHQUAALARrhECAAC2RRACAAC2RRACAAC2RRACAAC2RRACAAC2RRACAAC2RRACAAC2RRACAAC2RRACAAC2RRACAAC2RRACAAC2RRACAAC29f8Drx6hKZBzeb0AAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "and compute current unit usage with these whole-unit, possibly discontig HDs\n"
     ]
    },
    {
     "data": {
      "image/png": "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+rtpfN2fmpoaZ9CgQc5jjz3mHDp0yHn//fedqKgo57nnnrN6CL3K1/3Jy8tzBg0a5GzYsMGprq52tm/f7gwfPty57777rB5Cr2pqanL27dvn7Nu3z5HkrFq1ytm3b5/zxRdfOI7jODk5Oc6sWbO8679/a+9f//pX58CBA05hYWGff2uvr3v09ttvO/369XMKCwvb/Yw+ffq01UPolj4dI47jOC+99JLzi1/8wgkNDXUmTZrk/POf//T+2+233+5kZGS0W//OO+84I0aMcEJDQ52bbrrJKSkp8fPE/ufLHl177bWOpAtueXl5/h/cT3z9Hvr/9fUYcRzf92f37t1OUlKS43K5nGHDhjnPP/+8c/78eT9P7T++7M+5c+ecZ555xhk+fLgTFhbmuN1u59FHH3X+97//+X9wP/jwww87/Hny/Z5kZGQ4t99++wXnjB8/3gkNDXWGDRvmvPHGG36f25983aPbb7+9y/WXqyDH4dofAACw02dfMwIAAAIDMQIAAEwRIwAAwBQxAgAATBEjAADAFDECAABMESMAAMAUMQIAAEwRIwAAwBQxAgAATBEjAADAFDECAABM/R+pbvbVZVOapAAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(\"lets plot our muni-snapped HD pops vs. orig pops\")\n",
    "plt.scatter([HDvtdPop[t] for t in popHDlist], [HDvPop[t] for t in popHDlist])\n",
    "plt.axhline(aDP,ls=\"--\")\n",
    "plt.show()\n",
    "print(\"and compute current unit usage with these whole-unit, possibly discontig HDs\")\n",
    "unitUse = [0.]*nUnits\n",
    "for h in popHDlist:\n",
    "    for u in HDunitList[h]:\n",
    "        unitUse[u] += nDistricts * HDwt[h]\n",
    "plt.hist(unitUse,weights=unitPop)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 237,
   "id": "137160e2-9e4b-4f5b-97f7-cae4578fd1d4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(unitPop,unitUse)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 238,
   "id": "65383c4f-1561-4644-bbd3-32fe249cce30",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "for u in range(nUnits):\n",
    "    if unitUse[u] < 0.4:\n",
    "        plotPoly(unitGeom[u])\n",
    "        plotCenter(u,unitGeom[u])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 239,
   "id": "c7fc154e-bd1e-42c7-99b0-a808bde3d2ed",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "for u in unitNbrs[893]:  #this might just be too tiny to have been added when adding bulky nearby units\n",
    "    plotPoly(unitGeom[u])\n",
    "plotCenter(893,unitGeom[893])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 240,
   "id": "0555ca75-aef8-41a1-9790-04d9a04389bf",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "classify these muni HDs by contiguity\n",
      "quick classification: who has contiguity problems?\n",
      "working on HD 6789 time is now 0\n",
      "working on HD 1655 time is now 1\n",
      "working on HD 8039 time is now 3\n",
      "out of 1447 total HDs, there were 1447.0 contiguous and 1185.0 complement-contiguous HDs\n",
      "0 HDs had both discontiguity problems, while enclave-only = 262 and discontig only= 0\n",
      "here are the histograms of the small piece and enclave list lengths, total no = 0 262\n"
     ]
    },
    {
     "data": {
      "image/png": "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ti1btnT8HB4eLknKyMiQJKWmpqp79+7F3u/atWvVvXt31alTR/7+/nrooYd06tQpx+Wb3r17y9PTUx9//LEk6X//939lt9sVGxsrSfryyy916NAh+fv7O2oOCgrS+fPnL6u7PFyrL4rj4YcfVmpqqm666SY99dRT+uyzz8q8RqAq4gwKUE1cHPfxySefqE6dOk7rvL29neY9PT0dP188a1FUVCRJ8vX1LfY+v/vuO9111116/PHHNW3aNAUFBWnTpk0aOnSo8vLy5OfnJy8vLw0YMECLFi3SwIEDtWjRIj3wwAPy8PBw1N2uXTstXLjwsu3Xrl272LVcys3twr/NLMtyLMvPz79i22v1RXG0bdtWR44c0apVq7R27Vrdf//9io2NdRr7A+ByBBSgmmjWrJm8vb119OhRp8s5JdWyZUslJyfrkUce+d22u3btUlFRkWbOnOkIBR988MFl7eLj43XnnXdq//79WrdunV588UXHurZt22rJkiUKCQmR3W4vdd2XuhhsTpw4oTZt2khSmTzLxMvLS4WFhZctt9vteuCBB/TAAw9owIAB6tmzp06fPq2goKDr3idQVRFQgGrC399fo0eP1qhRo1RUVKQuXbooKytLmzdvlt1u15AhQ4q1nYkTJ6p79+5q1KiRBg4cqIKCAn366acaN27cZW1vvPFG5efna/bs2br77ru1efNmzZs377J2Xbt2VVhYmOLj4xUVFaVOnTo51sXHx+uVV17RvffeqylTpqhu3br6/vvv9eGHH2rs2LGqW7duifvC19dXt9xyi1566SVFRUUpIyNDzz//fIm381sNGjTQv/71L6WlpSk4OFgBAQGaPXu2wsPD1aZNG7m5uWnp0qUKCwsr1wfIAVUBAQUoaz9/Y+x+pk6dqtq1ayspKUnffvutAgMD1bZtWz377LPF3ka3bt20dOlSTZ06VS+99JLsdru6du16xbatWrXSa6+9ppdfflnjx49X165dlZSUpMGDBzu1s9lsGjRokGbMmKEJEyY4rfPz89PGjRs1btw49evXT2fOnFGdOnXUvXv36zqj8ve//11Dhw5Vu3btdNNNN2nGjBnXPeB22LBh2rBhg9q3b6+zZ89q/fr18vf314wZM3Tw4EG5u7urQ4cO+vTTTx1nlABcmc269CJsJZGdna2AgABlZWWV2SnfKzqeKr19uzQ85cJz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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "And here are the small-HD-piece and small-enclave pops\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAGdCAYAAAA44ojeAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAwHElEQVR4nO3dd3hUZf7//1d6IUyGUFIgYFi6QqSGWNCVrAFsCK7CJ18XFWGlqBAVxUJA1w0iNliELQrqBUTxI6igKIYqQpBIkLYoGAWEAIJJCCWF3L8/+DA/xwQkkDj3hOfjus4lc+577vM+N8POa8+c4mOMMQIAALCIr6cLAAAA+DUCCgAAsA4BBQAAWIeAAgAArENAAQAA1iGgAAAA6xBQAACAdQgoAADAOv6eLuB8lJeXa+/evapbt658fHw8XQ4AADgHxhgdOXJEMTEx8vU9+zESrwwoe/fuVWxsrKfLAAAA52H37t1q0qTJWft4ZUCpW7eupFM76HA4PFwNAAA4F4WFhYqNjXV9j5+NVwaU0z/rOBwOAgoAAF7mXE7P4CRZAABgHQIKAACwDgEFAABYxyvPQQGAi9HJkydVWlrq6TKAM/Lz85O/v3+13AKEgAIAXqCoqEh79uyRMcbTpQBnFRoaqujoaAUGBl7QOAQUALDcyZMntWfPHoWGhqphw4bcoBJWMsaopKREBw8eVG5urlq2bPmbN2M7GwIKAFiutLRUxhg1bNhQISEhni4HOKOQkBAFBATohx9+UElJiYKDg897LE6SBQAvwZETeIMLOWriNk61jAIAAFCN+IkHALzUj/nH9fPRkt9te/XqBKqx0+6fmMaPH68FCxYoJydHknTXXXcpPz9fCxYsqLYx8fsgoACAF/ox/7iSXlih46Unf7dthgT46bOHrrE+pFS3hx9+WPfff79Ha9iyZYvGjRun7Oxs/fDDD3rppZc0atQoj9ZU0wgoAOCFfj5aouOlJ/XyHZerRaOwGt/ejgNFGvV2jn4+WnLRBZSwsDCFhdX8HJ/NsWPH1Lx5c/35z3/W6NGjPVrL74VzUADAi7VoFKbLGofX+HI+Iejdd99V+/btFRISovr16yspKUlHjx6VdOqnl759++rvf/+7IiMj5XQ69fTTT6usrEyPPPKIIiIi1KRJE82cOdNtzEcffVStWrVSaGiomjdvrqeeeuqCbl43a9YsOZ1OLViwQC1btlRwcLCSk5O1e/duV5/x48fr8ssvd3vff/7zH7Vt21bBwcFq06aNXn31Vbf2PXv2aODAgYqIiFCdOnXUpUsXZWVludrff/99derUScHBwWrevLkmTJigsrKyM9bZtWtXPf/88xowYICCgoKqbd8kafr06frDH/6gwMBAtW7dWm+99ZZbu4+Pj6ZPn67evXsrJCREzZs317vvvntONVwIjqBUJn+3dOyQp6uomtD6kjPW01UAgCRp3759GjhwoCZNmqRbb71VR44c0apVq9xuNLd06VI1adJEK1eu1OrVqzV48GB98cUX6tGjh7KysvT222/rr3/9q/70pz+pSZMmkqS6detq1qxZiomJ0aZNmzRkyBDVrVtXY8aMOe9ajx07pmeffVZvvvmmAgMDNXz4cA0YMECrV6+utP/s2bM1btw4/eMf/1DHjh21YcMGDRkyRHXq1NGgQYNUVFSka665Ro0bN9YHH3ygqKgoffXVVyovL5ckrVq1Sn/5y180ZcoUXX311dq5c6eGDh0qSUpLSzvv/TiffZs/f74efPBBvfzyy0pKStLChQt19913q0mTJvrjH//oGuepp57SxIkT9corr+itt97SgAEDtGnTJrVt27Za6/0lAsqv5e+WpnWTSo95upKqCQiVRqwjpACwwr59+1RWVqZ+/fqpWbNmkqT27du79YmIiNCUKVPk6+ur1q1ba9KkSTp27Jgef/xxSdLYsWM1ceJEff755xowYIAk6cknn3S9/5JLLtHDDz+sjIyMCwoopaWl+sc//qGEhARJ0htvvKG2bdtq3bp16tatW4X+aWlpeuGFF9SvXz9JUlxcnLZu3ap//vOfGjRokObMmaODBw/qyy+/VEREhCSpRYsWrvdPmDBBjz32mAYNGiRJat68uZ555hmNGTOm2gPKb+3b5MmTddddd2n48OGSpNTUVK1du1aTJ092Cyh//vOfde+990qSnnnmGS1ZskRTp06tcOSoOhFQfu3YoVPhpN+/pQatPF3NufnpG+m9IadqJ6AAsEB8fLx69uyp9u3bKzk5Wddff71uu+021atXz9Xn0ksvdbtnRmRkpC677DLXaz8/P9WvX18HDhxwrXv77bc1ZcoU7dy5U0VFRSorK5PD4bigWv39/dW1a1fX6zZt2sjpdGrbtm0VAsrRo0e1c+dODR48WEOG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5tT3SXBwsPn444+NMca89dZbpnXr1qa8vNz1nuLiYhMSEmI++eST39zvtLQ0Ex8f/5v9jDFGkrnvvvvc1iUkJJhhw4YZY4z517/+ZerVq2eKiopc7YsWLTK+vr4mLy/PGGPMoEGDTEREhGt/jDFm+vTpJiwszJw8efKc6qhulX5e/09Vvr85ggIAqHY7duzQsWPH9Kc//UlhYWGu5c0339TOnTvd+nbo0MH15+joaEnSgQMHJEk5OTnq2bPnOW/3s88+U8+ePdW4cWPVrVtXd955pw4dOuT6+aZPnz4KCAjQBx98IEn63//9XzkcDiUlJUmSNm7cqB07dqhu3bqumiMiInTixIkKdVeHxMTECq9PH0HZtm2b4uPjVadOHVf7lVdeqfLycrefweLj4xUaGuo2RlFRkXbv3l3t9f6eOEkWAFDtTp8nsWjRIjVu3NitLSgoyO11QECA688+Pj6STp2/IkkhISHnvM3vv/9eN954o4YNG6Znn31WERER+vzzzzV48GCVlJQoNDRUgYGBuu222zRnzhwNGDBAc+bM0R133CF/f39X3Z07d9bs2bMrjN+wYcNzrgUXjiMoAIBq165dOwUFBWnXrl1q0aKF2xIbe+5XAXXo0EGZmZnn1Dc7O1vl5eV64YUX1L17d7Vq1Up79+6t0C8lJUWLFy/Wli1btHTpUqWkpLjaOnXqpG+//VaNGjWqUHd4ePg5132u1q5dW+F127ZtJUlt27bVxo0bdfToUVf76tWr5evrq9atW7vWbdy4UcePH3cbIywsrErzbCMCCgCg2tWtW1cPP/ywRo8erTfeeEM7d+7UV199palTp+qNN94453HS0tI0d+5cpaWladu2bdq0aZOee+65Svu2aNFCpaWlmjp1qr777ju99dZbmjFjRoV+PXr0UFRUlFJSUhQXF6eEhARXW0pKiho0aKBbbrlFq1atUm5urpYvX64HHnhAe/bsOWOdO3bsUE5OjvLy8nT8+HHl5OQoJyfnN0+snTdvnl5//XV98803SktL07p161wnwaakpCg4OFiDBg3S5s2btWzZMt1///268847FRkZ6RqjpKREgwcP1tatW/XRRx8pLS1NI0eOlK+vd3/F8xMPAHizn76xdjvPPPOMGjZsqPT0dH333XdyOp3q1KmTHn/88XMe49prr9W8efP0zDPPaOLEiXI4HOrR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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(\"classify these muni HDs by contiguity\") #take from vanillaHD\n",
    "\n",
    "### THIS IS THE \"FIND DISCO\" CODE\n",
    "print(\"quick classification: who has contiguity problems?\")\n",
    "nUnbroken, nNoEnclave, smallPieceLists, enclaveLists, sPgenerator, eLgenerator = 0., 0., list(), list(), list(), list()\n",
    "smallPieceLengths, enclaveLengths = list(), list()\n",
    "doubleTroubleList = list()\n",
    "startTime = time.time()\n",
    "for i,t in enumerate(popHDlist):\n",
    "    if i%700 == 0:\n",
    "        print(\"working on HD\",t,\"time is now\",int(time.time() - startTime) )\n",
    "    unbroken, noEnclave,smallPieceList,enclaveList = enclaveCheck(HDunitList[t], unitNbrs,4) #,6) #6 is high (slow) to try to avoid false enclaves\n",
    "    if unbroken:\n",
    "        nUnbroken +=1\n",
    "    if noEnclave:\n",
    "        nNoEnclave +=1\n",
    "    if not unbroken:\n",
    "        smallPieceLists.append(smallPieceList)\n",
    "        smallPieceLengths.append(len(smallPieceList))\n",
    "        sPgenerator.append(t)\n",
    "    if not noEnclave and unbroken:   #district is contiguous but contains 1+ enclave\n",
    "        enclaveLists.append(enclaveList)\n",
    "        enclaveLengths.append(len(enclaveList))\n",
    "        eLgenerator.append(t)\n",
    "    if not noEnclave and not unbroken:  #extremely discontig (\"broken\") HDs can appear to have enclaves;\n",
    "        doubleTroubleList.append(t)\n",
    "print(\"out of\",len(popHDlist),\"total HDs, there were\",nUnbroken,\"contiguous and\",nNoEnclave,\"complement-contiguous HDs\")\n",
    "print(len(doubleTroubleList),\"HDs had both discontiguity problems, while enclave-only =\",len(eLgenerator),\n",
    "      \"and discontig only=\",len(sPgenerator)-len(doubleTroubleList) )\n",
    "\n",
    "print(\"here are the histograms of the small piece and enclave list lengths, total no =\",\n",
    "      len(smallPieceLists),len(enclaveLists) )\n",
    "plt.hist([s for s in smallPieceLengths],label=\"small piece l units\",histtype='step',\n",
    "         cumulative=True,bins=[0,1,2,3,4,5,6,8,10,12,15,20,25,30,35,40,45,50,60,80,120])\n",
    "plt.hist([e for e in enclaveLengths],label=\"enclave l units\",histtype='step',\n",
    "         cumulative=True,bins=[0,1,2,3,4,5,6,8,10,12,15,20,25,30,35,40,45,50,60,80,120])\n",
    "plt.legend()\n",
    "plt.show()\n",
    "print(\"And here are the small-HD-piece and small-enclave pops\")\n",
    "plt.hist([sum(unitPop[u] for u in s) for s in smallPieceLists],label=\"small piece 1 pop\",histtype='step')\n",
    "plt.hist([sum(unitPop[u] for u in e) for e in enclaveLists],label=\"enclave 1 pop\",histtype='step')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 241,
   "id": "c17ce76c-faca-4ab6-8b46-291b628e4c72",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Now, let's fill in all enclaves that won't put us over 142394 district pop vs 118662 target\n",
      "working on enclave-y HD 6793 . We have evaluated 0 of 262 enclavy HDs.Time is now 0\n",
      "working on enclave-y HD 7104 . We have evaluated 200 of 262 enclavy HDs.Time is now 1\n",
      "Out of 262 HDs with enclaves 262 had enclaves.\n",
      "Of these, 228 wouldn't be over 142394 if all enclaves filled, while 34 were too populous\n",
      "here is enclave pop by final pop for those we filled\n"
     ]
    },
    {
     "data": {
      "image/png": "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KKZtNKYjCN1xxx0Br5ssbeypfR4bNmwwksynn35qjEmt92G4bTQmdd6LVtrX1NRkJJnXX3/dGJOer2HXNhqTOq+hMYHb+Pnnn5uTTjrJVFdXd2tPqr2ODI0FUVNTo7q6OpWVlXkfczqdGj9+vCorKyVJlZWVKigo0Ne+9jVvmbKyMmVkZHi7RCsrK3XRRRcpOzvbW2bixInauXOnDhw44C3T+T6eMp77WKlLLNrn8cADD2jAgAE677zz9PDDD/sMlyRr+6zauHGj2trafO49fPhwDRkyxOd1HjlypAoLC33q39zcrK1bt3rL9NTG1tZWbdy40adMRkaGysrKYt5Gj2eeeUYDBw7UiBEjtGDBAh05csT7XCq1sampSQ6HQwUFBd56per70GobPdLhvdja2qonn3xSTqdTo0aN8tYrnV5Df230SOXX0O126+abb9a8efN0zjnndHs+1V5HWx+6akVdXZ0k+XwweL73PFdXV6dBgwb5PN+rVy/179/fp8ywYcO6XcPzXL9+/VRXVxf0PsHqEov2SdK//du/acyYMerfv7/Wrl2rBQsWqLa2Vr/61a+Sun1W1dXVKTs7u9sHTtf6+aub57meyjQ3N+vo0aM6cOCA2tvb/ZbZsWNHNJvk17e//W2dcsopKi4u1pYtWzR//nzt3LlTL7zwQo/19zzXU5l4trGlpUXz58/XtGnTvAc3pvL70B9/bZRS/734yiuvaOrUqTpy5IiKiopUUVGhgQMHeu+bDq9hT22UUv81fPDBB9WrVy/927/9m9/nU+11JAjBkrlz53r/fO655yo7O1vf//73tWjRoqTaKh09u/32271/HjlypIqKinTppZdq165dOu200xJYM+va2tr0rW99S8YYLV68ONHViYme2pjq78WLL75YVVVV2rdvn5566il961vf0vr167t9cKayYG1M5ddw48aNevTRR7Vp0yY5HI5EVycqGBoLwuVySVK31UP19fXe51wul/bu3evz/PHjx9XQ0OBTxt81Ot8jUJnOzwerSyza58/48eN1/Phx7d69u8e6d75HItpnlcvlUmtrqxobG3usX7htzM/PV+/evTVw4EBlZmYmpI3+jB8/XpL08ccfS0r+NnoCwqeffqqKigqfnpJUfh921lMb/Um192KfPn10+umna8KECfrd736nXr166Xe/+533vunwGvbURn9S6TV8++23tXfvXg0ZMkS9evVSr1699Omnn+ruu+/W0KFDvfdOpdeRIBTEsGHD5HK5tGrVKu9jzc3NWr9+vUpLSyVJpaWlamxs1MaNG71lVq9eLbfb7f2gKS0t1Zo1a9TW1uYtU1FRobPOOkv9+vXzlul8H08Zz32s1CUW7fOnqqpKGRkZ3v/hJGv7rBo7dqyysrJ87r1z507t2bPH53X+8MMPfd7gng+qkpISb5me2pidna2xY8f6lHG73Vq1alXM2+iPZ4l9UVGRpORuoycgfPTRR3r99dc1YMAAn+dT+X1otY3+pPp70e1269ixY956pfprGKyN/qTSa3jzzTdry5Ytqqqq8n4VFxdr3rx5+utf/+qtW0q9jpanVaexgwcPms2bN5vNmzcbSeZXv/qV2bx5s3elxgMPPGAKCgrMSy+9ZLZs2WKuvvpqv8vnzzvvPLN+/XrzzjvvmDPOOMNnqWBjY6MpLCw0N998s6murjbLly83eXl53ZYK9urVy/zHf/yH2b59u1m4cKHfpYLB6hLt9q1du9Y88sgjpqqqyuzatcssW7bMnHjiieaWW25JivZZaeP+/fvN5s2bzauvvmokmeXLl5vNmzeb2tpa7zVmzpxphgwZYlavXm3ef/99U1paakpLS73Pe5aWX3755aaqqsqUl5ebE0880e/S8nnz5pnt27ebxx9/3O/S8pycHLN06VKzbds2c/vtt5uCggKflVqxaOPHH39sfvazn5n333/f1NTUmJdeesmceuqp5qKLLkqKNvbUvtbWVnPVVVeZk08+2VRVVfksO+686iSZ34fRaGOyvxd7at+hQ4fMggULTGVlpdm9e7d5//33zW233WZycnJMdXV1WryGVtqY7K9hsDb6428VXLK/jp0RhIwxb7zxhpHU7evWW281xnQs0fvpT39qCgsLTU5Ojrn00kvNzp07fa6xf/9+M23aNHPCCSeY/Px8c9ttt5mDBw/6lPnggw/MBRdcYHJycsxJJ51kHnjggW51+dOf/mTOPPNMk52dbc455xzz6quv+jxvpS7Rbt/GjRvN+PHjjdPpNLm5uebss882v/jFL0xLS0tStM9KG59++mm/zy9cuNB7jaNHj5of/OAHpl+/fiYvL89ce+21PkHJGGN2795trrjiCtO7d28zcOBAc/fdd5u2trZudRk9erTJzs42p556qnn66ae71fexxx4zQ4YMMdnZ2WbcuHFm3bp1MW/jnj17zEUXXWT69+9vcnJyzOmnn27mzZvns49QItvYU/s8WwL4+3rjjTe810jm92E02pjs78We2nf06FFz7bXXmuLiYpOdnW2KiorMVVddZTZs2OBzjVR+Da20Mdlfw2Bt9MdfEEr217EzhzHGWO8/AgAASB/MEQIAALZFEAIAALZFEAIAALZFEAIAALZFEAIAALZFEAIAALZFEAIAALZFEAIAALZFEAIAALZFEAIAALZFEAIAALZFEAIAALb1/wM/l7aFxkXG7AAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#copy enclave fix here.  Will not have any muni-discontig\n",
    "### THIS IS THE \"CANFILL\" CODE  #check if sum of enclave pops small enough to add\n",
    "maxNudgeUpPop = int(0.02 * aDP)\n",
    "maxPostFixPop = int(1.2 * aDP) #wider tolerance here for munis vs. vtd-based\n",
    "print(\"Now, let's fill in all enclaves that won't put us over\",int(maxPostFixPop),\"district pop vs\",int(aDP),\"target\")\n",
    "nOrigEnclaves = [0 for t in range(nHDs)]\n",
    "totalEnclavePop = [0. for t in range(nHDs)]\n",
    "tryToFill, canFill, cantFill = list(), list(), list()\n",
    "startTime = time.time()  #takes about xx sec per HD triage\n",
    "        \n",
    "for iii, t in enumerate(eLgenerator):\n",
    "    if iii%200 == 0:\n",
    "        print(\"working on enclave-y HD\",t,\". We have evaluated\",iii,\"of\",len(eLgenerator),\"enclavy HDs.Time is now\",int(time.time() - startTime) )\n",
    "    unbroken, noEnclave,smallPieceList,enclaveList = enclaveCheck(HDunitList[t], unitNbrs)\n",
    "    if unbroken and not noEnclave:  #\"and unbroken\" new 1/15 - discontig HDs will usually appear to have enclaves.  We'll fix these in later block\n",
    "        tryToFill.append(t)\n",
    "        enclaveLists = getEnclaveLists(HDunitList[t], unitNbrs)\n",
    "        nOrigEnclaves[t] = len(enclaveLists)\n",
    "        totalEnclavePop[t] = np.sum( [ [np.sum([unitPop[u] for u in eL])] for eL in enclaveLists ] ) \n",
    "        if HDvPop[t] + totalEnclavePop[t] <= maxPostFixPop or totalEnclavePop[t] < maxNudgeUpPop:\n",
    "            canFill.append(t)\n",
    "            for eL in enclaveLists:\n",
    "                HDunitList[t] += eL\n",
    "                HDvPop[t] += np.sum([unitPop[u] for u in eL])\n",
    "        else:\n",
    "            cantFill.append(t)\n",
    "print(\"Out of\",len(eLgenerator),\"HDs with enclaves\",len(tryToFill),\"had enclaves.\")\n",
    "print(\"Of these,\",len(canFill),\"wouldn't be over\",maxPostFixPop,\"if all enclaves filled, while\",len(cantFill),\"were too populous\")\n",
    "plt.scatter([HDvPop[t] for t in canFill],[totalEnclavePop[t] for t in canFill])\n",
    "print(\"here is enclave pop by final pop for those we filled\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 242,
   "id": "f6c330cf-7a6b-41ea-beac-662051683390",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "defining and displaying current unit use after above manipulations; compare to original farther above.\n",
      "current avg use and its sd are 0.98334 0.07223\n"
     ]
    },
    {
     "data": {
      "image/png": "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Rx+9wJ33H76e40WLFulf//VftXbtWu3bt08PPPCAfvWrX+lvf/vbBe68/2hsbFRiYqLWr1/fpfrPP/9ct956q2644QZVV1dr/vz5uv/++/mDcB6+nuPm5maNGDFCixYtUmJiYg93ZwZfz/E777yjX/7yl3rzzTdVWVmpG264Qbfffjv/rTjLjQEnJSXFPXfuXM/rtrY2d2xsrNvhcHRYP3fuXPeNN97otc5ut7t//vOf92if/Zmv53jkyJHudevWea2788473bNmzerRPk0hyf3666+ft+bhhx92/+xnP/Nal5WV5c7IyOjBzszRlXP8/6Wnp7sffPDBHuvHRL6e47PGjx/vXr58uf8b6oe4UjPAtLS0qLKyUjabzbPOYrHIZrOpoqKiw22uueYaVVZWej4++eyzz/Tmm29q2rRpF6Tn/qY757i5udnrYZOSFBISonfffbdHex1IKioqvH4nkpSRkdHp7wToD9rb2/XNN99o2LBhvd1Kn2Dst3SjY8ePH1dbW5vnCdBnRUdHa//+/R1uc/fdd+v48eO69tpr5Xa7debMGT3wwAN8/NSJ7pzjjIwMFRQU6LrrrtOYMWNUXl6u1157TW1tbRei5QHB6XR2+DtxuVxqampSSEhIL3UGdN+qVat06tQp/eY3v+ntVvoErtTgB+3YsUP/8i//oqefflpVVVV67bXXtG3bNj3++OO93Zox1qxZo3Hjxunyyy+X1WpVXl6ecnJyvL5yBAD+v+LiYi1fvlyvvvqqoqKierudPoErNQNMZGSkAgMDVVdX57W+rq5OMTExHW6zePFi/e53v9P9998vSbryyis939X1z//8z/zh/TvdOccjRozQli1b9O233+rrr79WbGysFi5cqNGjR1+IlgeEmJiYDn8nYWFhXKVBv7Np0ybdf//92rx58zkfqw5k/DUaYKxWq5KTk1VeXu5Z197ervLycqWlpXW4zenTp88JLoGBgZIkN18ddo7unOOzgoODFRcXpzNnzujf//3fdccdd/R0uwNGWlqa1+9EksrKyn7wdwL0Na+88opycnL0yiuv6NZbb+3tdvoUrtQMQHa7XdnZ2Zo8ebJSUlJUWFioxsZG5eTkSJJmz56tuLg4ORwOSdLtt9+ugoICTZo0SampqTp48KAWL16s22+/3RNu4M3Xc7xnzx7V1tYqKSlJtbW1WrZsmdrb2/Xwww/35mH0aadOndLBgwc9rz///HNVV1dr2LBhuuSSS5Sfn6/a2lq99NJLkqQHHnhA69at08MPP6x7771Xb731ll599VVt27attw6hz/P1HEtSdXW1Z9tjx46purpaVqtV48ePv9Dt9wu+nuPi4mJlZ2drzZo1Sk1NldPplPTdjQXh4eG9cgx9Sm/ffoXesXbtWvcll1zitlqt7pSUFPfu3bs976Wnp7uzs7M9r1tbW93Lli1zjxkzxh0cHOyOj493/+M//qP75MmTF77xfsSXc7xjxw73FVdc4Q4KCnIPHz7c/bvf/c5dW1vbC133H2+//bZb0jnL2fOanZ3tTk9PP2ebpKQkt9VqdY8ePdq9cePGC953f9Kdc9xR/aWXXnrBe+8vfD3H6enp560f6ALcbj4/AAAA/R9zagAAgBEINQAAwAiEGgAAYARCDQAAMAKhBgAAGIFQAwAAjECoAQAARiDUAAAAIxBqAACAEQg1AADACIQaAABgBEINAAAwwv8BVtFBTZFHmjkAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(\"defining and displaying current unit use after above manipulations; compare to original farther above.\")\n",
    "HDweight = HDwt.copy()\n",
    "unitUse = [0. for u in range(nUnits)]\n",
    "for t in range(nHDs):\n",
    "    for u in HDunitList[t]:\n",
    "        unitUse[u] += nDistricts * HDweight[t]\n",
    "activeUnitDistro, activeUnitWeights = list(), list()\n",
    "for u in range(nUnits):\n",
    "    if unitUse[u] > 0.01:\n",
    "        activeUnitDistro.append(unitUse[u])\n",
    "        activeUnitWeights.append(unitPop[u]/statePop)\n",
    "plt.hist(activeUnitDistro, weights=activeUnitWeights, bins = 20, histtype = \"step\")\n",
    "#plt.show()\n",
    "currAvg, currSD = getWeightedAvgAndSD(activeUnitDistro, activeUnitWeights)\n",
    "print(\"current avg use and its sd are\",r5(currAvg),r5(currSD) )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 243,
   "id": "635508f4-6b38-4228-a36e-c4d5517f101a",
   "metadata": {},
   "outputs": [],
   "source": [
    "savedHDunitList = [HDunitList[t].copy() for t in range(nHDs) ]  #safekeeping"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 244,
   "id": "db8e3439-5852-4eb2-9e50-d5712e471cc9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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yuTz+ZSZmakJEybowIEDcWPefvttnX/++UpPT1d+fr7mzp17RJbly5erf//+Sk9P16BBg/TCCy8k56QTCIfDuv3229W3b19lZGTom9/8pu666664L1zrzPPx0ksv6dJLL1VeXp5cLpeeeeaZuP12OvevkqWjvmw+WlpadNttt2nQoEHq2rWr8vLydPXVV2vv3r1xx+gs8/HPfjfauuGGG+RyufTggw/GbXfcXBiHWbZsmUlNTTW///3vzbZt28z1119vMjMzTW1trdXR2qW4uNgsXLjQvPPOO2bLli3m4osvNr169TIHDhyIjbnhhhtMfn6+qaysNJs3bzbDhw835513Xmx/a2urOfPMM01RUZF58803zQsvvGBOOeUUM2PGjNiYDz74wHTp0sVMnTrVbN++3Tz88MPG4/GYVatWxcbYaU43btxo+vTpY8466yxz8803x7afSHOxb98+07t3b3PNNdeYDRs2mA8++MCsXr3avP/++7Exc+bMMX6/3zzzzDPmrbfeMt///vdN3759zeHDh2NjLrroInP22Web119/3bz88svm9NNPN1dddVVsf0NDg8nJyTFlZWXmnXfeMU888YTJyMgwv/nNb2JjXn31VePxeMzcuXPN9u3bzcyZM01KSorZunXr1zMZxpi7777bdO/e3axYscLs3r3bLF++3HTr1s089NBDsTGdeT5eeOEF84tf/MI89dRTRpJ5+umn4/bb6dy/SpZkzkd9fb0pKioyf/zjH827775rqqqqzLnnnmuGDh0ad4zOMh//7Hcj6qmnnjJnn322ycvLMw888ICj58JxRcu5555rysvLYz+Hw2GTl5dnKioqLEzVcXV1dUaSWb9+vTHmH//zpaSkmOXLl8fG7Nixw0gyVVVVxph//MK63W4TDAZjY+bPn298Pp9pamoyxhhz6623moEDB8a91o9+9CNTXFwc+9kuc7p//37Tr18/s2bNGvMv//IvsaLlRJuL2267zYwcOTLh/kgkYnJzc829994b21ZfX2/S0tLME088YYwxZvv27UaS2bRpU2zMypUrjcvlMp988okxxphHH33UnHzyybH5ib72GWecEfv5hz/8oSkpKYl7/cLCQvOTn/ykYyfZDiUlJea6666L23bFFVeYsrIyY8yJNR9ffGOy07l/lSzH25e9UUdt3LjRSDIfffSRMabzzkeiufj444/Nqaeeat555x3Tu3fvuKLFiXPhqI+HmpubVV1draKiotg2t9utoqIiVVVVWZis4xoaGiRJWVlZkqTq6mq1tLTEnWv//v3Vq1ev2LlWVVVp0KBBcd+WXVxcrFAopG3btsXGtD1GdEz0GHaa0/LycpWUlByR90Sbi//93//VsGHD9IMf/EDZ2dkaMmSIHnvssdj+3bt3KxgMxuX0+/0qLCyMm4/MzEwNGzYsNqaoqEhut1sbNmyIjfnOd76j1NTU2Jji4mLt3LlTf//732NjvmzOvg7nnXeeKisr9d5770mS3nrrLb3yyisaM2aMpBNvPtqy07l/lSxWaGhokMvlUmZmpqQTaz4ikYjGjRunadOmaeDAgUfsd+JcOKpo+etf/6pwOBz3xiRJOTk5CgaDFqXquEgkoilTpmjEiBE688wzJUnBYFCpqamx/9Gi2p5rMBg86lxE933ZmFAopMOHD9tmTpctW6Y33nhDFRUVR+w70ebigw8+0Pz589WvXz+tXr1akyZN0k033aTFixfHziOaK1HOYDCo7OzsuP1er1dZWVnHZc6+zvmYPn26xo4dq/79+yslJUVDhgzRlClTVFZWFpf1RJmPtux07l8ly9etsbFRt912m6666qrYtxSfSPPx61//Wl6vVzfddNNR9ztxLiz77iF8rry8XO+8845eeeUVq6NYYs+ePbr55pu1Zs0apaenWx3HcpFIRMOGDdM999wjSRoyZIjeeecdLViwQOPHj7c43dfvySef1JIlS7R06VINHDhQW7Zs0ZQpU5SXl3dCzge+mpaWFv3whz+UMUbz58+3Os7Xrrq6Wg899JDeeOMNuVwuq+McN45aaTnllFPk8XiOuGuktrZWubm5FqXqmMmTJ2vFihVat26dTjvttNj23NxcNTc3q76+Pm5823PNzc096lxE933ZGJ/Pp4yMDFvMaXV1terq6nTOOefI6/XK6/Vq/fr1mjdvnrxer3Jyck6YuZCknj17qqCgIG7bgAEDVFNTI+nz8/mynLm5uaqrq4vb39raqn379h2XOfs652PatGmx1ZZBgwZp3LhxuuWWW2KrcifafLRlp3P/Klm+LtGC5aOPPtKaNWtiqyzRnCfCfLz88suqq6tTr169Yn+vfvTRR/rZz36mPn36xDI6bS4cVbSkpqZq6NChqqysjG2LRCKqrKxUIBCwMFn7GWM0efJkPf3001q7dq369u0bt3/o0KFKSUmJO9edO3eqpqYmdq6BQEBbt26N+6WL/g8afdMLBAJxx4iOiR7DDnM6atQobd26VVu2bIk9hg0bprKystifT5S5kKQRI0Yccfv7e++9p969e0uS+vbtq9zc3LicoVBIGzZsiJuP+vp6VVdXx8asXbtWkUgk9qWkgUBAL730klpaWmJj1qxZozPOOEMnn3xybMyXzdnX4dChQ3K74/+q8ng8ikQikk68+WjLTuf+VbJ8HaIFy65du/Tiiy+qe/fucftPlPkYN26c3n777bi/V/Py8jRt2jStXr06dg6Om4t2XbZrA8uWLTNpaWlm0aJFZvv27WbixIkmMzMz7q4RJ5g0aZLx+/3mL3/5i/n0009jj0OHDsXG3HDDDaZXr15m7dq1ZvPmzSYQCJhAIBDbH73Nd/To0WbLli1m1apVpkePHke9zXfatGlmx44d5pFHHjnqbb52m9O2dw8Zc2LNxcaNG43X6zV333232bVrl1myZInp0qWLefzxx2Nj5syZYzIzM82zzz5r3n77bXPZZZcd9TbXIUOGmA0bNphXXnnF9OvXL+5Wxvr6epOTk2PGjRtn3nnnHbNs2TLTpUuXI25l9Hq95r777jM7duwwd9xxx9d+y/P48ePNqaeeGrvl+amnnjKnnHKKufXWW2NjOvN87N+/37z55pvmzTffNJLM/fffb958883Y3TB2OvevkiWZ89Hc3Gy+//3vm9NOO81s2bIl7u/Wtne/dJb5+Ge/G1/0xbuHnDgXjitajDHm4YcfNr169TKpqanm3HPPNa+//rrVkdpN0lEfCxcujI05fPiw+elPf2pOPvlk06VLF/Ov//qv5tNPP407zocffmjGjBljMjIyzCmnnGJ+9rOfmZaWlrgx69atM4MHDzapqanmG9/4RtxrRNltTr9YtJxoc/Hcc8+ZM88806SlpZn+/fub3/72t3H7I5GIuf32201OTo5JS0szo0aNMjt37owb87e//c1cddVVplu3bsbn85lrr73W7N+/P27MW2+9ZUaOHGnS0tLMqaeeaubMmXNElieffNJ861vfMqmpqWbgwIHm+eefP/4n/CVCoZC5+eabTa9evUx6err5xje+YX7xi1/EvQl15vlYt27dUf+uGD9+vDHGXuf+VbIkcz52796d8O/WdevWdbr5+Ge/G190tKLFaXPhMqZNW0kAAACbctQ1LQAA4MRF0QIAAByBogUAADgCRQsAAHAEihYAAOAIFC0AAMARKFoAAIAjULQAAABHoGgBAACOQNECAAAcgaIFAAA4wv8PVj1fLciI1tgAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#savedHDunitList = [HDunitList[t].copy() for t in range(nHDs) ]  #safekeeping\n",
    "HDunitList = [savedHDunitList[t].copy() for t in range(nHDs) ]   #restart\n",
    "HDvPop = [0 for t in range(nHDs)]\n",
    "for t in popHDlist:\n",
    "    for u in HDunitList[t]:\n",
    "        HDvPop[t] += unitPop[u]\n",
    "plt.axvline(aDP, ls=\"--\")\n",
    "plt.axvline(0.95*aDP, ls=\"dotted\")\n",
    "plt.axvline(1.05*aDP, ls=\"dotted\")\n",
    "plt.hist([HDvPop[t] for t in popHDlist],bins=20)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 245,
   "id": "1a8cd550-4d5d-4e77-811e-3f013c395fc8",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "here are the HD centers for 34 cantFill HDs with border or big enclaves\n"
     ]
    },
    {
     "data": {
      "image/png": "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3XZfA319bA5LbWtNpO1w601toPFUHQ4sUWdAYOnVqxfr16+nvLyc//73v0yaNInFixfTt29f5s6dyx133MHTTz+N2WzmuuuuY8iQIQ32XwF48803ee2113j99dfp168f69ev56677iItLY1JkyY1+L4ZM2Zw99131/1cUVFBRkZGUy9HRESk1VntFqLsFqLimhZ4Av4gnmr/4QDjw13tr/3q8h21vbLYjdvlIykzmrDItjdI+JT7sIwZM4Zu3brx7LPP1m0rKirCarUSGxtLamoq99xzD7/+9a+P+f6MjAzuv/9+Jk+eXLftD3/4A6+++irbtjW8CuUPqQ+LiIhI29PifViOCAaD9fqSACQmJgKwcOFCCgsLufzyyxt8f3V19VEtMBaLhWDw2M/zRERE5MzTpMAyY8YMxo0bR2ZmJpWVlbz++ut88cUXzJ8/H4AXX3yRPn36kJSUxLJly5g6dSrTpk2jV69edWWMHj2aiRMnMmXKFADGjx/Po48+SmZmJv369WPdunX85S9/4Wc/+1kzXqaIiIi0ZU0KLIWFhdx8883k5eXhdDrJyspi/vz5XHTRRQBs376dGTNmUFJSQufOnXnggQeYNm1avTJycnIoKiqq+/mvf/0rDz30EP/7v/9LYWEhaWlp/PKXv+Thhx9uhssTERGR9uCU+7CECvVhERERaXsa+/nd9PWsRURERE4zBRYREREJeQosIiIiEvIUWERERCTkKbCIiIhIyFNgERERkZCnwCIiIiIhT4FFREREQp4Ci4iIiIQ8BRYREREJeQosIiIiEvIUWERERCTkKbCIiIhIyFNgERERkZCnwCIiIiIhT4FFREREQp4Ci4iIiIQ8BRYREREJeQosIiIiEvIUWERERCTkKbCIiIhIyFNgERERkZCnwCIiIiIhT4FFREREQp4Ci4iIiIQ8BRYREREJeQosIiIiEvIUWERERCTkKbCIiIhIyFNgERERkZCnwCIiIiIhT4FFREREQp4Ci4iIiIQ8BRYREREJeQosIiIiEvIUWERERCTkKbCIiIhIyFNgERERkZCnwCIiIiIhT4FFREREQp4Ci4iIiIQ8BRYREREJeQosIiIiEvIUWERERCTkKbCIiIhIyFNgERERkZCnwCIiIiIhT4FFREREQp4Ci4iIiIS8JgWW2bNnk5WVRUxMDDExMWRnZ/Pxxx/X7c/J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R/esbdJ9azzDMKisrCQtLe24M+O3mxYWs9lMenp6a1fjjBMTE6M/xjZI963t0T1rm3TfGud4LStHqNOtiIiIhDwFFhEREQl5CixyUhwOB7/97W+1AGUbo/vW9uietU26b82v3XS6FRERkfZLLSwiIiIS8hRYREREJOQpsIiIiEjIU2ARERGRkKfAIiIiIiFPgUUatGPHDq644goSExOJiYlh1KhRLFq06JjHFhcXk56ejslkoqys7Ljldu7cGZPJVO81a9asFriCM09L3bOSkhJuuOEGYmJiiI2N5dZbb6WqqqoFruDMdKL7VlxczCWXXEJaWhoOh4OMjAymTJlywsVe9bfWclrqnulvrWEKLNKgyy67DL/fz8KFC1mzZg0DBw7ksssuIz8//6hjb731VrKyshpd9u9//3vy8vLqXnfeeWdzVv2M1VL37IYbbmDz5s189tlnfPDBByxZsoTbbrutuat/xjrRfTObzVxxxRW899577Nixg5deeonPP/+c22+//YRl62+tZbTUPdPf2nEYIsdw6NAhAzCWLFlSt62iosIAjM8++6zesc8884xx3nnnGQsWLDAAo7S09Lhld+rUyXjiiSdaoNZntpa6Z1u2bDEAY9WqVXXbPv74Y8NkMhkHDhxo9us40zTlvn3fU089ZaSnpx+3bP2ttYyWumf6Wzs+tbDIMSUkJNCrVy9eeeUVXC4Xfr+fZ599luTkZIYOHVp33JYtW/j973/PK6+8ctxVNn9o1qxZJCQkMHjwYB5//HH8fn9LXMYZpaXu2bJly4iNjWXYsGF128aMGYPZbGbFihUtci1nksbet+87ePAgb7/9Nuedd94Jy9ffWvNrqXumv7XjazerNUvzMplMfP7550yYMIHo6GjMZjPJycl88sknxMXFAeDxeLjuuut4/PHHyczMZPfu3Y0q+1e/+hVDhgwhPj6er7/+mhkzZpCXl8df/vKXlrykdq+l7ll+fj7Jycn1tlmtVuLj44/5qEmapjH37YjrrruOd999l5qaGsaPH8/zzz9/3LL1t9YyWuqe6W/t+NTCcoa5//77j+qE98PXtm3bMAyDyZMnk5yczJdffsnKlSuZMGEC48ePJy8vD4AZM2bQp08fbrzxxibV4e677+b8888nKyuL22+/nf/3//4ff/3rX/F4PC1xyW1eKNwzabrmvG9HPPHEE6xdu5Z3332XnJwc7r777uPWQX9rTRMK90waprWEzjCHDh2iuLj4uMd07dqVL7/8krFjx1JaWkpMTEzdvh49enDrrbdy//33M2jQIDZu3IjJZALAMAyCwSAWi4UHHniARx55pFF12rx5M/3792fbtm306tXr5C+unWrte/bCCy9wzz33UFpaWrfN7/cTFhbG3LlzmThxYjNdafvSnPftWJYuXco555zDwYMH6dChQ6PqpL+142vte6a/tePTI6EzTFJSEklJSSc8rrq6GuCoPg5ms5lgMAjAW2+9RU1NTd2+VatW8bOf/Ywvv/ySbt26NbpO69evr2tSlaO19j3Lzs6mrKyMNWvW1D2fX7hwIcFgkOHDh5/UNZ0JmvO+HcuRfU1pLdHf2vG19j3T39oJtF5/Xwllhw4dMhISEowrr7zSWL9+vbF9+3bj3nvvNWw2m7F+/fpjvmfRokVHjThZsWKF0atXL2P//v2GYRjG119/bTzxxBPG+vXrjZycHOPVV181kpKSjJtvvvl0XFa71lL3zDAM45JLLjEGDx5srFixwli6dKnRo0cP47rrrmvpSzojNOa+ffjhh8YLL7xgbNy40dizZ4/xwQcfGH369DFGjhxZV47+1k6flrpnhqG/teNRYJEGrVq1yhg7dqwRHx9vREdHGyNGjDA++uijBo8/1offkW179uwxDMMw1qxZYwwfPtxwOp1GWFiY0adPH+Oxxx4z3G53C1/NmaEl7plhGEZxcbFx3XXXGVFRUUZMTIxxyy23GJWVlS14JWeWE923hQsXGtnZ2XV/Nz169DCmT5+uv7VW1BL3zDD0t3Y86sMiIiIiIU+jhERERCTkKbCIiIhIyFNgERERkZCnwCIiIiIhT4FFREREQp4Ci4iIiIQ8BRYREREJeQosIiIiEvIUWERERCTkKbCIiIhIyFNgERERkZD3/wFMphQXhClcigAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(\"here are the HD centers for\",len(cantFill),\"cantFill HDs with border or big enclaves\")\n",
    "for u in borderUnits:\n",
    "    plotPoly(unitGeom[u],0.1)\n",
    "for t in cantFill:\n",
    "    plotPoly(HDCP[t].buffer(0.02))\n",
    "for c in liveCountyList:\n",
    "    plotPoly(countyGeom[c])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 246,
   "id": "79b314d2-b06c-4bc8-9ee9-13a16704cc0b",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "working on avg unit-to-HDcp dist for HD 6789\n",
      "working on avg unit-to-HDcp dist for HD 1377\n",
      "all unit-toHDcp distances computed\n"
     ]
    }
   ],
   "source": [
    "barredJettisonSet = set([]) #for basic muni snap, there are no special corner units to freeze\n",
    "avgDist = [0. for t in range(nHDs)]  #about 6sec per 1000 HDs\n",
    "for i,t in enumerate(popHDlist):\n",
    "    if i%800 == 0:\n",
    "        print(\"working on avg unit-to-HDcp dist for HD\",t)\n",
    "    avgDist[t] =  np.sum([unitPop[u]*unitCP[u].distance(hdCP[t]) for u in HDunitList[t] ]) / HDvPop[t]\n",
    "print(\"all unit-toHDcp distances computed\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 250,
   "id": "8c06738d-ab6e-465f-8400-0299a20f6382",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "for muniSnap99-type code, all units are munis, not clusters\n"
     ]
    }
   ],
   "source": [
    "print(\"for muniSnap99-type code, all units are munis, not clusters\")\n",
    "allUnits = [u for u in range(nUnits)]\n",
    "wholeSet = set()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 248,
   "id": "c430b298-8117-4a6b-9463-78b0a1c36bd1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "since MUSTFREE is misbehaving, use MUSTSPAWN for troublesome h's \n"
     ]
    }
   ],
   "source": [
    "print(\"since MUSTFREE is misbehaving, use MUSTSPAWN for troublesome h's \")\n",
    "badDiscoList = cantFill.copy() #sPgenerator + eLgenerator #cantFill.copy() #sPgenerator.copy()  #prep for below\n",
    "CCBgeom = list()  #no CCBgeoms in this ipynb\n",
    "#HDpoly = HDvtdGeom.copy()  #as shortcut, did not generate these shapes for the COI conversion code\n",
    "vtdArea = [tractGeom[v].area for v in range(nVTDs) ]\n",
    "HDarea = [np.sum([vtdArea[v] for v in HDvtdList[t] ]) for t in range(nHDs) ]\n",
    "HDcircle = [HDCP[t].buffer(0.23456*HDarea[t]**0.5) for t in range(nHDs) ] #approximation\n",
    "HDdiam = [HDarea[h] for h in range(nHDs)]\n",
    "maxGap = max(maxDistrictPop - aDP, 0.9 * np.median(unitPop) ) # = 0.05 * aDP\n",
    "HDnAddedUnits = [list() for h in range(nHDs)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 251,
   "id": "24df2a9a-a515-40ff-9201-e60bd48160f0",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "since MUSTFREE is misbehaving, use MUSTSPAWN for troublesome h's \n",
      "And now, the major Disco's  Redraw fully using HDswell\n",
      "Assuming we have run the previous canSwell block.  This block repeats the code, but starting from the home unit\n",
      "This takes 1 - 1000 sec per HD :-( The total number of HDs to fix is 34\n",
      "swell-generating HD 7044 our 1 th HD we must regrow out of 34 0 sec elapsed\n",
      "swell-generating HD 6875 our 11 th HD we must regrow out of 34 0 sec elapsed\n",
      "swell-generating HD 1599 our 21 th HD we must regrow out of 34 0 sec elapsed\n",
      "swell-generating HD 6862 our 31 th HD we must regrow out of 34 0 sec elapsed\n"
     ]
    }
   ],
   "source": [
    "print(\"since MUSTFREE is misbehaving, use MUSTSPAWN for troublesome h's \")\n",
    "#THIS IS THE MUSTSPAWN code block - stolen from vanillaHD-OHredo\n",
    "print(\"And now, the major Disco's  Redraw fully using HDswell\")\n",
    "print(\"Assuming we have run the previous canSwell block.  This block repeats the code, but starting from the home unit\")\n",
    "print(\"This takes 1 - 1000 sec per HD :-( The total number of HDs to fix is\",len(badDiscoList))\n",
    "#avgDiam = MAP.area**0.5 / float(nDistricts)\n",
    "startTime = time.time()\n",
    "for i,t in enumerate(badDiscoList):\n",
    "    aDP = countyADP[countyNo[t]]\n",
    "    minDistrictPop, maxDistrictPop = 0.95*aDP, 1.05*aDP\n",
    "    maxGap = maxDistrictPop - aDP\n",
    "    if i%10 == 0:\n",
    "        print(\"swell-generating HD\",t,\"our\",i+1,\"th HD we must regrow out of\",len(badDiscoList),int(time.time()-startTime),\"sec elapsed\" )\n",
    "    notInCluster = True\n",
    "    for jj, geo in enumerate(CCBgeom):  #swell in-corner HDs from the corner cluster\n",
    "        if geo.contains(hdCP[t]):\n",
    "            starterU = allUnits.index(jj+0.25)\n",
    "            notInCluster = False\n",
    "    if notInCluster:\n",
    "        starterU = homeU[t]\n",
    "        #distList = [hdCP[t].distance(unitCP[u]) for u in HDunitList[t] ]\n",
    "        #starterU = HDunitList[t][distList.index(np.min(distList))]  #starter = unit with centroid closest to the hd center\n",
    "    contigUs = [starterU]  #we used getContigFromStarter(starterU, HDvtdList[t], unitNbrs) in above code block\n",
    "    contigPop = np.sum( [ unitPop[u] for u in contigUs ] )\n",
    "    gap = aDP - contigPop\n",
    "    origGap = gap\n",
    "    currList, addedList = contigUs.copy(), list()\n",
    "    adjoiners = list( set( getAdjoiners(currList, unitNbrs) ).difference(wholeSet) )\n",
    "    nearHDlist = [uu for uu in adjoiners]  #bias toward underused, close to HD (and its center)\n",
    "    #                                            subbed HDcircle for HDpoly in below\n",
    "    nearHDscore = [ (0.2*(unitUse[uu] - 1.) ) + 0.5*(unitCP[uu].distance(HDcircle[t]) + \n",
    "        unitCP[uu].distance(hdCP[t])  )  / HDdiam[t] for uu in adjoiners ]\n",
    "    stillGoing = True\n",
    "    \n",
    "    while gap > maxGap and len(nearHDlist) > 0 and stillGoing:   #add the lowest-scoring neighboring underused unit until we've roughly squared the HDpop\n",
    "        idx, i, notYetPicked = np.argsort(nearHDscore), 0, True\n",
    "        while i < len(nearHDscore) and notYetPicked:        \n",
    "            listNo = idx[i]   #nearHDscore.index(np.min(nearHDscore))\n",
    "            unitNoToAdd = nearHDlist[listNo]  #add this unit ...\n",
    "            canAdd  = wontEnclave(unitNoToAdd, currList, unitNbrs, borderUnits)\n",
    "            if canAdd:\n",
    "                notYetPicked = False\n",
    "            else:\n",
    "                i +=1\n",
    "        if notYetPicked:\n",
    "            stillGoing = False  #can't add any more units without creating an enclave\n",
    "        else: #we selected the best unit to add legally\n",
    "            gap -= unitPop[unitNoToAdd]\n",
    "            addedList.append(unitNoToAdd)\n",
    "            currList.append( unitNoToAdd)\n",
    "            for uu in unitNbrs[unitNoToAdd]: # ... and add its nonHD, nonwhole neighbors to future candidates\n",
    "                if uu not in currList and uu not in nearHDlist and unitPop[uu] < gap + maxGap and uu not in wholeSet:  \n",
    "                    nearHDlist.append(uu)                           #subbed HDcircle for HDpoly in below\n",
    "                    nearHDscore.append((0.1*(unitUse[uu] - 1.) ) + 0.5*(unitCP[uu].distance(HDcircle[t]) + \n",
    "                                                                        unitCP[uu].distance(hdCP[t])  )  / HDdiam[t] )\n",
    "            del nearHDscore[nearHDlist.index(unitNoToAdd)]        \n",
    "            del nearHDlist[ nearHDlist.index(unitNoToAdd) ]\n",
    "            for i, uu in enumerate(nearHDlist.copy()):\n",
    "                if unitPop[uu] > gap + maxGap:   #with the added pop from another unit, this unit is now too big to add\n",
    "                    del nearHDscore[nearHDlist.index(uu)]\n",
    "                    del nearHDlist[ nearHDlist.index(uu)]\n",
    "    for u in addedList:\n",
    "        unitUse[u] += HDweight[t] * nDistricts\n",
    "    for u in list( set(HDunitList[t]).difference(set(contigUs)) ):\n",
    "        unitUse[u] -= HDweight[t] * nDistricts       \n",
    "    HDunitList[t] = contigUs + addedList\n",
    "    HDvPop[t]    = np.sum( [unitPop[u] for u in HDunitList[t] ] )\n",
    "    HDnAddedUnits[t] = len(addedList)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "4d174ae9-66c6-46ee-84ab-ea3eec2af7b1",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 252,
   "id": "52466ded-6cd4-4b69-ae5a-10ef43dc7047",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "classify updated muni HDs by contiguity\n",
      "quick classification: who has contiguity problems?\n",
      "working on HD 6789 time is now 0\n",
      "working on HD 1655 time is now 0\n",
      "working on HD 8039 time is now 1\n",
      "out of 1447 total HDs, there were 1447.0 contiguous and 1447.0 complement-contiguous HDs\n",
      "0 HDs had both discontiguity problems, while enclave-only = 0 and discontig only= 0\n"
     ]
    }
   ],
   "source": [
    "print(\"classify updated muni HDs by contiguity\") #take from vanillaHD\n",
    "\n",
    "### THIS IS THE \"FIND DISCO\" CODE\n",
    "print(\"quick classification: who has contiguity problems?\")\n",
    "nUnbroken, nNoEnclave, smallPieceLists, enclaveLists, sPgenerator, eLgenerator = 0., 0., list(), list(), list(), list()\n",
    "smallPieceLengths, enclaveLengths = list(), list()\n",
    "doubleTroubleList = list()\n",
    "startTime = time.time()\n",
    "for i,t in enumerate(popHDlist):\n",
    "    if i%700 == 0:\n",
    "        print(\"working on HD\",t,\"time is now\",int(time.time() - startTime) )\n",
    "    unbroken, noEnclave,smallPieceList,enclaveList = enclaveCheck(HDunitList[t], unitNbrs,4) #,6) #6 is high (slow) to try to avoid false enclaves\n",
    "    if unbroken:\n",
    "        nUnbroken +=1\n",
    "    if noEnclave:\n",
    "        nNoEnclave +=1\n",
    "    if not unbroken:\n",
    "        smallPieceLists.append(smallPieceList)\n",
    "        smallPieceLengths.append(len(smallPieceList))\n",
    "        sPgenerator.append(t)\n",
    "    if not noEnclave and unbroken:   #district is contiguous but contains 1+ enclave\n",
    "        enclaveLists.append(enclaveList)\n",
    "        enclaveLengths.append(len(enclaveList))\n",
    "        eLgenerator.append(t)\n",
    "    if not noEnclave and not unbroken:  #extremely discontig (\"broken\") HDs can appear to have enclaves;\n",
    "        doubleTroubleList.append(t)\n",
    "print(\"out of\",len(popHDlist),\"total HDs, there were\",nUnbroken,\"contiguous and\",nNoEnclave,\"complement-contiguous HDs\")\n",
    "print(len(doubleTroubleList),\"HDs had both discontiguity problems, while enclave-only =\",len(eLgenerator),\n",
    "      \"and discontig only=\",len(sPgenerator)-len(doubleTroubleList) )\n",
    "\n",
    "if len(smallPieceLists) + len(enclaveLists) > 0:\n",
    "    print(\"here are the histograms of the small piece and enclave list lengths, total no =\",\n",
    "          len(smallPieceLists),len(enclaveLists) )\n",
    "    plt.hist([s for s in smallPieceLengths],label=\"small piece l units\",histtype='step',\n",
    "             cumulative=True,bins=[0,1,2,3,4,5,6,8,10,12,15,20,25,30,35,40,45,50,60,80,120,200])\n",
    "    plt.hist([e for e in enclaveLengths],label=\"enclave l units\",histtype='step',\n",
    "             cumulative=True,bins=[0,1,2,3,4,5,6,8,10,12,15,20,25,30,35,40,45,50,60,80,120,200])\n",
    "    plt.legend()\n",
    "    plt.show()\n",
    "    print(\"And here are the small-HD-piece and small-enclave pops\")\n",
    "    plt.hist([sum(unitPop[u] for u in s) for s in smallPieceLists],label=\"small piece 1 pop\",histtype='step')\n",
    "    plt.hist([sum(unitPop[u] for u in e) for e in enclaveLists],label=\"enclave 1 pop\",histtype='step')\n",
    "    plt.legend()\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 253,
   "id": "5adf92b0-a130-4e56-8963-b3061906ee0f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "let's visualize over-used and underused units, < 0.75 or > 1.25\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "and here is the histogram of HD pops\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "minUnitUse, maxUnitUse = 0.75, 1.25\n",
    "print(\"let's visualize over-used and underused units, <\",minUnitUse,\"or >\",maxUnitUse)\n",
    "unitUse = [0. for u in range(nUnits)]\n",
    "for t in popHDlist:\n",
    "    for u in HDunitList[t]:\n",
    "        unitUse[u] += HDweight[t] * nDistricts\n",
    "for u in range(nUnits):\n",
    "    if unitUse[u] < minUnitUse:\n",
    "        plotPoly(unitGeom[u],0.4)\n",
    "        plotCenter(\"u\",unitCP[u])\n",
    "    if unitUse[u] > maxUnitUse:\n",
    "        plotPoly(unitGeom[u], 1.5)\n",
    "for c in liveCountyList: #range(nCounties):\n",
    "    plotPoly(countyGeom[c],0.1)\n",
    "plt.show()\n",
    "print(\"and here is the histogram of HD pops\")\n",
    "plt.hist([HDvPop[t] for t in popHDlist],bins = [0, 0.6*aDP, 0.7*aDP, 0.85*aDP, 0.9*aDP, 0.95*aDP,\n",
    "         0.98*aDP, aDP, 1.02*aDP, 1.05*aDP, 1.1*aDP, 1.15*aDP, 1.3*aDP, 1.5*aDP, 2.0*aDP])\n",
    "plt.axvline(aDP,ls=\"--\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 254,
   "id": "2ed8e4ef-3e5a-4c1e-959a-e383723c12a9",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "before patching, make another copy of the current HD lists\n"
     ]
    },
    {
     "data": {
      "image/png": "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xQrFxcW1W/PXv/5Vhw8f9m5bt26VJE2fPt2nLj8/36fuscce83f6AADAUH383aGoqEj5+fnKy8uTJJWUlOjNN9/Uhg0b9NBDD51TP2nSJE2aNEmS2n1eki677DKfxytWrNCwYcOUmZnpM96vX7/zBqN/1tTUpKamJu9jt9vdof0AAEDP5NedmubmZlVVVclut3/bwGKR3W5XZWVlQCbU3NysP/7xj7rjjjsUFBTk89xLL72k6OhojRkzRoWFhTp16tR5+zidTkVERHi3xMTEgMwPAABcmvy6U3Ps2DG1trYqNjbWZzw2Nlb79+8PyIQ2b96s+vp63X777T7jt912m6644grFx8frgw8+0IMPPqgDBw7o1VdfbbdPYWGhHA6H97Hb7SbYAABgML9ffupqzz77rG644QbFx8f7jM+dO9f789ixYzV48GBdd911+uSTTzRs2LBz+thsNtlsti6fLwAAuDT49fJTdHS0goODVVdX5zNeV1fX4bUuF/L5559r27ZtuvPOO7+zNj09XZJ08ODB731cAADQ8/kVaqxWq1JTU1VRUeEda2trU0VFhTIyMr73ZJ577jnFxMTopptu+s7a6upqSdLgwYO/93EBAEDP5/fLTw6HQ7m5uZo4caLS0tJUXFysxsZG77uhZs+erYSEBDmdTknfLPzdt2+f9+fa2lpVV1crLCxMw4cP9/Zta2vTc889p9zcXPXp4zutTz75RKWlpbrxxhs1aNAgffDBB1qwYIGuuuoqjRs3rtMnDwAAzOF3qMnJydHRo0e1ePFiuVwupaSkqLy83Lt4uKamRhbLtzeADh06pPHjx3sfr1q1SqtWrVJmZqa2b9/uHd+2bZtqamp0xx13nHNMq9Wqbdu2eQNUYmKisrOztXDhQn+nDwAADNWphcIFBQUqKCho97l/DCrSN58W7PF4vrPn9ddff966xMRE7dixw+95AgCA3oPvfgIAAEYg1AAAACMQagAAgBEINQAAwAiEGgAAYARCDQAAMAKhBgAAGIFQAwAAjECoAQAARiDUAAAAIxBqAACAEQg1AADACIQaAABgBEINAAAwAqEGAAAYgVADAACMQKgBAABGINQAAAAjEGoAAIARCDUAAMAIhBoAAGAEQg0AADACoQYAABiBUAMAAIxAqAEAAEYg1AAAACMQagAAgBEINQAAwAiEGgAAYARCDQAA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PPKIT90999zj7/QBAICh/A41RUVFys/PV15enkaPHq2SkhL169dPGzZsaLd+zZo1mjp1qu6//36NGjVKy5cv14QJE7Ru3TpvTVxcnM/2pz/9Sddcc42GDh3q02vAgAE+df379/d3+gAAwFB+hZrm5mZVVVXJbrd/28Bikd1uV2VlZbv7VFZW+tRLUlZW1nnr6+rq9Oabb2rOnDnnPLdixQoNGjRI48eP18qVK3XmzJnzzrWpqUlut9tnAwAA5urjT/GxY8fU2tqq2NhYn/HY2Fjt37+/3X1cLle79S6Xq936F154QQMGDNCtt97qM/7b3/5WEyZMUFRUlHbu3KnCwkIdPnxYRUVF7fZxOp1atmxZR08NAAD0cH6Fmothw4YNmjVrlkJCQnzGHQ6H9+dx48bJarXqrrvuktPplM1mO6dPYWGhzz5ut1uJiYldN3EAANCt/Ao10dHRCg4OVl1dnc94XV2d4uLi2t0nLi6uw/X/+7//qwMHDqisrOw755Kenq4zZ87os88+05VXXnnO8zabrd2wAwAAzOTXmhqr1arU1FRVVFR4x9ra2lRRUaGMjIx298nIyPCpl6StW7e2W//ss88qNTVVycnJ3zmX6upqWSwWxcTE+HMKAADAUH6//ORwOJSbm6uJEycqLS1NxcXFamxsVF5eniRp9uzZSkhIkNPplCTde++9yszM1OrVq3XTTTdp48aNeu+99/T000/79HW73dq0aZNWr159zjErKyu1a9cuXXPNNRowYIAqKyu1YMEC/epXv9LAgQM7c94AAMAwfoeanJwcHT16VIsXL5bL5VJKSorKy8u9i4FrampksXx7A2jy5MkqLS3VwoUL9fDDD2vEiBHavHmzxowZ49N348aN8ng8mjlz5jnHtNls2rhxo5YuXaqmpiYNGTJECxYs8FkzAwAAercgj8fj6e5JXAxut1sRERFqaGhQeHh4d08HuGR9WNugn619R2/cM0VjEiK6ezroBP4MYRJ/fn/z3U8AAMAIhBoAAGAEQg0AADACoQYAABiBUAMAAIxAqAEAAEYg1AAAACMQagAAgBEINQAAwAiEGgAAYARCDQAAMAKhBgAAGIFQAwAAjECoAQAARiDUAAAAIxBqAACAEQg1AADACIQaAABgBEINAAAwAqEGAAAYgVADAACMQKgBAABGINQAAAAj9OnuCQCmq60/rRONzV3Se2B/qxIiQ7ukNwD0NIQaoAvV1p+WffUOnW5p7ZL+oX2Dte2+TIINAIhQA3SpE43NOt3SquKcFA2PCQto74NHTmp+WbVONDYTagBAhBrgohgeE6YxCRHdPQ0AMBoLhQEAgBEINQAAwAiEGgAAYARCDQAAMAKhBgAAGIFQAwAAjECoAQAARuhUqFm/fr2SkpIUEhKi9PR07d69+4L1mzZt0siRIxUSEqKxY8dqy5YtPs/ffvvtCgoK8tmmTp3qU3P8+HHNmjVL4eHhioyM1Jw5c3Ty5MnOTB8AABjI71BTVlYmh8OhJUuWaM+ePUpOTlZWVpaOHDnSbv3OnTs1c+ZMzZkzR++//76mTZumadOm6cMPP/Spmzp1qg4fPuzdXn75ZZ/nZ82apb1792rr1q1644039Pbbb2vu3Ln+Th8AABjK71BTVFSk/Px85eXlafTo0SopKVG/fv20YcOGduvXrFmjqVOn6v7779eoUaO0fPlyTZgwQevWrfOps9lsiouL824DBw70PvfRRx+pvLxcf/jDH5Senq4pU6Zo7dq12rhxow4dOuTvKQAAAAP5FWqam5tVVVUlu93+bQOLRXa7XZWVle3uU1lZ6VMvSVlZWefUb9++XTExMbryyiv1m9/8Rl9++aVPj8jISE2cONE7ZrfbZbFYtGvXrnaP29TUJLfb7bMBAABz+RVqjh07ptbWVsXGxvqMx8bGyuVytbuPy+X6zvqpU6fqxRdfVEVFhR599FHt2LFDN9xwg1pbW709YmJifHr06dNHUVFR5z2u0+lURESEd0tMTPTnVAEAQA9zSXyh5YwZM7w/jx07VuPGjdOwYcO0fft2XXfddZ3qWVhYKIfD4X3sdrsJNgAAGMyvOzXR0dEKDg5WXV2dz3hdXZ3i4uLa3ScuLs6vekkaOnSooqOjdfDgQW+Pf16IfObMGR0/fvy8fWw2m8LDw302AABgLr9CjdVqVWpqqioqKrxjbW1tqqioUEZGRrv7ZGRk+NRL0tatW89bL0l///vf9eWXX2rw4MHeHvX19aqqqvLWvPXWW2pra1N6ero/pwAAAAzl97ufHA6HnnnmGb3wwgv66KOP9Jvf/EaNjY3Ky8uTJM2ePVuFhYXe+nvvvVfl5eVavXq19u/fr6VLl+q9995TQUGBJOnkyZO6//779e677+qzzz5TRUWFbrnlFg0fPlxZWVmSpFGjRmnq1KnKz8/X7t279X//938qKCjQjBkzFB8fH4jrAAAAeji/19Tk5OTo6NGjWrx4sVwul1JSUlReXu5dDFxTUyOL5dusNHnyZJWWlmrhwoV6+OGHNWLECG3evFljxoyRJAUHB+uDDz7QCy+8oPr6esXHx+v666/X8uXLZbPZvH1eeuklFRQU6LrrrpPFYlF2draeeOKJ73v+AGCsg0cC/wGlA/tblRAZGvC+QCB0aqFwQUGB907LP9u+ffs5Y9OnT9f06dPbrQ8NDdWf//zn7zxmVFSUSktL/ZonAPRGA/tbFdo3WPPLqgPeO7RvsLbdl0mwwSXpknj3EwAgcBIiQ7XtvkydaGwOaN+DR05qflm1TjQ2E2pwSSLUAICBEiJDCR7odfiWbgAAYARCDQAAMAKhBgAAGIFQAwAAjECoAQAARiDUAAAAIxBqAACAEQg1AADACIQaAABgBEINAAAwAqEGAAAYgVADAACMQKgBAABG4Fu6gR7u4JGTl3Q/ALhYCDVADzWwv1WhfYM1v6w64L1D+wZrYH9rwPsCQFci1AA9VEJkqLbdl6kTjc0B7z2wv1UJkaEB7wsAXYlQA/RgCZGhhA8A+P9YKAwAAIxAqAEAAEYg1AAAACMQagAAgBEINQAAwAiEGgAAYARCDQAAMAKhBgAAGIFQAwAAjECoAQAARiDUAAAAIxBqAACAEfhCS0BSbf3pLvm264NHTga8JwCgfYQa9Hq19adlX71Dp1tau6R/aN9gDexv7ZLeAIBvEWrQ651obNbpllYV56RoeExYwPsP7G9VQmRowPsCAHwRahBwXfVSjtS1AWF4TJjGJER0SW/AJF31sir/A4Dvq1OhZv369Vq5cqVcLpeSk5O1du1apaWlnbd+06ZNWrRokT777DONGDFCjz76qG688UZJUktLixYuXKgtW7bob3/7myIiImS327VixQrFx8d7eyQlJenzzz/36et0OvXQQw915hTQRS7GSznb7svkHz6gGwzsb1Vo32DNL6vukv78/cb35XeoKSsrk8PhUElJidLT01VcXKysrCwdOHBAMTEx59Tv3LlTM2fOlNPp1M9+9jOVlpZq2rRp2rNnj8aMGaNTp05pz549WrRokZKTk3XixAnde++9+td//Ve99957Pr0eeeQR5efnex8PGDCgE6eMrtSVL+UcPHJS88uqdaKxmX/0gG6QEBmqbfdldtmiev5+4/vyO9QUFRUpPz9feXl5kqSSkhK9+eab2rBhQ7t3TdasWaOpU6fq/vvvlyQtX75cW7du1bp161RSUqKIiAht3brVZ59169YpLS1NNTU1uvzyy73jAwYMUFxcnL9TRjfgpRzATAmRoYQOXLL8+pya5uZmVVVVyW63f9vAYpHdbldlZWW7+1RWVvrUS1JWVtZ56yWpoaFBQUFBioyM9BlfsWKFBg0apPHjx2vlypU6c+bMeXs0NTXJ7Xb7bAAAwFx+3ak5duyYWltbFRsb6zMeGxur/fv3t7uPy+Vqt97lcrVb//XXX+vBBx/UzJkzFR4e7h3/7W9/qwkTJigqKko7d+5UYWGhDh8+rKKionb7OJ1OLVu2zJ/TAwAAPdgl9e6nlpYW/fKXv5TH49FTTz3l85zD4fD+PG7cOFmtVt11111yOp2y2Wzn9CosLPTZx+12KzExsesmDwAAupVfoSY6OlrBwcGqq6vzGa+rqzvvWpe4uLgO1Z8NNJ9//rneeustn7s07UlPT9eZM2f02Wef6corrzzneZvN1m7YAQAAZvJrTY3ValVqaqoqKiq8Y21tbaqoqFBGRka7+2RkZPjUS9LWrVt96s8Gmo8//ljbtm3ToEGDvnMu1dXVslgs7b7jCgAA9D5+v/zkcDiUm5uriRMnKi0tTcXFxWpsbPS+G2r27NlKSEiQ0+mUJN17773KzMzU6tWrddNNN2njxo1677339PTTT0v6JtD84he/0J49e/TGG2+otbXVu94mKipKVqtVlZWV2rVrl6655hoNGDBAlZWVWrBggX71q19p4MCBgboWAACgB/M71OTk5Ojo0aNavHixXC6XUlJSVF5e7l0MXFNTI4vl2xtAkydPVmlpqRYuXKiHH35YI0aM0ObNmzVmzBhJUm1trf77v/9bkpSSkuJzrL/85S+6+uqrZbPZtHHjRi1dulRNTU0aMmSIFixY4LNmBgAA9G6dWihcUFCggoKCdp/bvn37OWPTp0/X9OnT261PSkqSx+O54PEmTJigd9991+95AgCA3sOvNTUAAACXqkvqLd04V0/9ckgAAC42Qs0ljC+HBACg4wg1lzC+HBIAgI4j1PQAfDkkAADfjYXCAADACNypCZCuWNB78MjJgPYDAMBkhJoA6MoFvaF9gzWwvzXgfQEAMA2hJgC6ckEvb7sG0Jt0xR1q/h3tPQg1AcSCXgDonIH9rQrtG6z5ZdUB783HV/QehBoAQLdLiAzVtvsyu2RtIh9f0XsQagAAl4SEyFCCB74X3tINAACMQKgBAABGINQAAAAjEGoAAIARCDUAAMAIhBoAAGAEQg0AADACn1ODHifQH6POF4cCgBkINegxuvpj1PniUADo2Qg16DG66mPUJb7wDgBMQKhBj8LHqAMAzodQAwAwXletneMu76WFUNPLsegWgMm6ci2e9M16vG33ZRJsLhGEml6KRbcAeoOuXIt38MhJzS+r1onGZkLNJYJQ00ux6BZAb8FavN6DUNOL8RcdAHqf2vrTXfI/tFL3/08toQYAgF6itv607Kt36HRLa5f07+41RoQaAAB6iRONzTrd0qrinBQNjwkLaO9LYY0RoQYAgF5meEyYxiREdPc0Ao4vtAQAAEYg1AAAACMQagAAgBE6FWrWr1+vpKQkhYSEKD09Xbt3775g/aZNmzRy5EiFhIRo7Nix2rJli8/zHo9Hixcv1uDBgxUaGiq73a6PP/7Yp+b48eOaNWuWwsPDFRkZqTlz5ujkST69FgAAfMPvUFNWViaHw6ElS5Zoz549Sk5OVlZWlo4cOdJu/c6dOzVz5kzNmTNH77//vqZNm6Zp06bpww8/9NY89thjeuKJJ1RSUqJdu3apf//+ysrK0tdff+2tmTVrlvbu3autW7fqjTfe0Ntvv625c+d24pQBAICJ/A41RUVFys/PV15enkaPHq2SkhL169dPGzZsaLd+zZo1mjp1qu6//36NGjVKy5cv14QJE7Ru3TpJ39ylKS4u1sKFC3XLLbdo3LhxevHFF3Xo0CFt3rxZkvTRRx+pvLxcf/jDH5Senq4pU6Zo7dq12rhxow4dOtT5swcAAMbw6y3dzc3NqqqqUmFhoXfMYrHIbrersrKy3X0qKyvlcDh8xrKysryB5dNPP5XL5ZLdbvc+HxERofT0dFVWVmrGjBmqrKxUZGSkJk6c6K2x2+2yWCzatWuXfv7zn59z3KamJjU1NXkfNzQ0SJLcbrc/p9whJ79yq63plE5+5ZbbHRTw/gCAS8/Zf/s/+Nthnfwq8L9busLfjjZ22e+rrvpdePb3tsfj+c5av0LNsWPH1NraqtjYWJ/x2NhY7d+/v919XC5Xu/Uul8v7/NmxC9XExMT4TrxPH0VFRXlr/pnT6dSyZcvOGU9MTDzf6X1vGcVd1hoAcImaVdzdM/BfV/6+6qreX331lSIiLvzZOsZ++F5hYaHPHaK2tjYdP35cgwYNUlAQd1M6wu12KzExUV988YXCw8O7ezrG43pffFzzi4vrfXGZcr09Ho+++uorxcfHf2etX6EmOjpawcHBqqur8xmvq6tTXFxcu/vExcVdsP7sf+vq6jR48GCfmpSUFG/NPy9EPnPmjI4fP37e49psNtlsNp+xyMjIC58g2hUeHt6j/0L0NFzvi49rfnFxvS8uE673d92hOcuvhcJWq1WpqamqqKjwjrW1tamiokIZGRnt7pORkeFTL0lbt2711g8ZMkRxcXE+NW63W7t27fLWZGRkqL6+XlVVVd6at956S21tbUpPT/fnFAAAgKH8fvnJ4XAoNzdXEydOVFpamoqLi9XY2Ki8vDxJ0uzZs5WQkCCn0ylJuvfee5WZmanVq1frpptu0saNG/Xee+/p6aefliQFBQVp/vz5+t3vfqcRI0ZoyJAhWrRokeLj4zVt2jRJ0qhRozR16lTl5+erpKRELS0tKigo0IwZMzp0OwoAAJjP71CTk5Ojo0ePavHixXK5XEpJSVF5ebl3oW9NTY0slm9vAE2ePFmlpaVauHChHn74YY0YMUKbN2/WmDFjvDUPPPCAGhsbNXfuXNXX12vKlCkqLy9XSEiIt+all15SQUGBrrvuOlksFmVnZ+uJJ574PueO72Cz2bRkyZJzXsZD1+B6X3xc84uL631x9cbrHeTpyHukAAAALnF89xMAADACoQYAABiBUAMAAIxAqAEAAEYg1AAAACMQanq59evXKykpSSEhIUpPT9fu3bsvWF9cXKwrr7xSoaGhSkxM1IIFC/T1119fpNn2fP5c75aWFj3yyCMaNmyYQkJClJycrPLy8os4257t7bff1s0336z4+HgFBQV5v0T3QrZv364JEybIZrNp+PDhev7557t8nqbw93ofPnxYt912m374wx/KYrFo/vz5F2WeJvH3mr/66qv66U9/qssuu0zh4eHKyMjQn//854sz2YuEUNOLlZWVyeFwaMmSJdqzZ4+Sk5OVlZV1zldSnFVaWqqHHnpIS5Ys0UcffaRnn31WZWVlevjhhy/yzHsmf6/3woUL9Z//+Z9au3at9u3bp7vvvls///nP9f7771/kmfdMjY2NSk5O1vr16ztU/+mnn+qmm27SNddco+rqas2fP1933nmncf/odxV/r3dTU5Muu+wyLVy4UMnJyV08OzP5e83ffvtt/fSnP9WWLVtUVVWla665RjfffLNZ/6Z40GulpaV55s2b533c2trqiY+P9zidznbr582b57n22mt9xhwOh+cnP/lJl87TFP5e78GDB3vWrVvnM3brrbd6Zs2a1aXzNJEkz2uvvXbBmgceeMDzox/9yGcsJyfHk5WV1YUzM1NHrvc/yszM9Nx7771dNp/ewN9rftbo0aM9y5YtC/yEugl3anqp5uZmVVVVyW63e8csFovsdrsqKyvb3Wfy5MmqqqryvmTyt7/9TVu2bNGNN954Uebck3Xmejc1Nfl8qrYkhYaG6p133unSufZWlZWVPn8+kpSVlXXePx+gp2tra9NXX32lqKio7p5KwPj9NQkww7Fjx9Ta2ur9eouzYmNjtX///nb3ue2223Ts2DFNmTJFHo9HZ86c0d13383LTx3QmeudlZWloqIiXXXVVRo2bJgqKir06quvqrW19WJMuddxuVzt/vm43W6dPn1aoaGh3TQzoGusWrVKJ0+e1C9/+cvunkrAcKcGHbZ9+3b9/ve/15NPPqk9e/bo1Vdf1Ztvvqnly5d399SMtGbNGo0YMUIjR46U1WpVQUGB8vLyfL5bDQA6o7S0VMuWLdMrr7yimJiY7p5OwHCnppeKjo5WcHCw6urqfMbr6uoUFxfX7j6LFi3Sr3/9a915552SpLFjx3q/iPQ//uM/+GV7AZ253pdddpk2b96sr7/+Wl9++aXi4+P10EMPaejQoRdjyr1OXFxcu38+4eHh3KWBUTZu3Kg777xTmzZtOucl156O30K9lNVqVWpqqioqKrxjbW1tqqioUEZGRrv7nDp16pzgEhwcLEny8L2oF9SZ631WSEiIEhISdObMGf3Xf/2Xbrnllq6ebq+UkZHh8+cjSVu3bv3OPx+gJ3n55ZeVl5enl19+WTfddFN3TyfguFPTizkcDuXm5mrixIlKS0tTcXGxGhsblZeXJ0maPXu2EhIS5HQ6JUk333yzioqKNH78eKWnp+vgwYNatGiRbr75Zm+4wfn5e7137dql2tpapaSkqLa2VkuXLlVbW5seeOCB7jyNHuPkyZM6ePCg9/Gnn36q6upqRUVF6fLLL1dhYaFqa2v14osvSpLuvvturVu3Tg888IDuuOMOvfXWW3rllVf05ptvdtcp9Cj+Xm9Jqq6u9u579OhRVVdXy2q1avTo0Rd7+j2Sv9e8tLRUubm5WrNmjdLT0+VyuSR98waEiIiIbjmHgOvut1+he61du9Zz+eWXe6xWqyctLc3z7rvvep/LzMz05Obmeh+3tLR4li5d6hk2bJgnJCTEk5iY6Pm3f/s3z4kTJy7+xHsof6739u3bPaNGjfLYbDbPoEGDPL/+9a89tbW13TDrnukvf/mLR9I529lrnJub68nMzDxnn5SUFI/VavUMHTrU89xzz130efdUnbne7dVfccUVF33uPZW/1zwzM/OC9SYI8nh43QAAAPR8rKkBAABGINQAAAAjEGoAAIARCDUAAMAIhBoAAGAEQg0AADACoQYAABiBUAMAAIxAqAEAAEYg1AAAACMQagAAgBH+H2uQ8gJlLbP5AAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "pre-patch avg use and its sd are 0.98298 0.0785\n"
     ]
    }
   ],
   "source": [
    "print(\"before patching, make another copy of the current HD lists\")\n",
    "latestHDlist = [HDunitList[t].copy() for t in range(nHDs)]   #More safekeeping\n",
    "latestHDpop, latestUnitUse = [0. for t in range(nHDs)], [0. for u in range(nUnits)]\n",
    "for t in popHDlist:\n",
    "    for u in latestHDlist[t]:\n",
    "        latestHDpop[t] += unitPop[u]\n",
    "        latestUnitUse[u] += nDistricts * HDweight[t]\n",
    "latestUnitWeights, latestUnitDistro = list(), list()\n",
    "for u in range(nUnits):\n",
    "    if latestUnitUse[u] > 0.1:\n",
    "        latestUnitDistro.append(latestUnitUse[u])\n",
    "        latestUnitWeights.append(unitPop[u]/statePop)\n",
    "plt.hist(latestUnitDistro, weights=latestUnitWeights, bins = 20, histtype = \"step\")\n",
    "plt.show()\n",
    "latestAvg, latestSD = getWeightedAvgAndSD(latestUnitDistro, latestUnitWeights)\n",
    "print(\"pre-patch avg use and its sd are\",r5(latestAvg),r5(latestSD) )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 255,
   "id": "5ef378e7-cb08-45c1-a3d7-50ba9eef49bb",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "We will now square up the 203 HDs with pop < 113706 to within 5984\n",
      "working on squaring up HD 1190 time is now 0\n",
      "working on squaring up HD 7153 time is now 0\n",
      "working on squaring up HD 8019 time is now 0\n",
      "We have attempted to address underpop in a total of 203 HDs\n",
      "... but we got stuck in 1\n",
      "Here is a scatterplot of original (x) to final pop (y)\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkkAAAGdCAYAAAAGx+eQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA/LklEQVR4nO3de3hU1b3/8c8kIRMIZEJCySQYMPUCcpGLFIxFbWskKEVzbIsiCrU5ilZ6oPRopBaBYz0g1GO9INSeX7XnaBU4BY5cTJ8I2FSNREgCBCSiRuAIA9XADBcDIbN+f9DZZsjOZULu8349T552Zn1nz9r7UefzrL3W2g5jjBEAAACCRLR1BwAAANojQhIAAIANQhIAAIANQhIAAIANQhIAAIANQhIAAIANQhIAAIANQhIAAICNqLbuQHvn9/t18OBB9ejRQw6Ho627AwAAGsEYo+PHjyslJUUREU0bEyIkNeDgwYNKTU1t624AAIAmOHDggC666KImfZaQ1IAePXpIOneR4+Li2rg3AACgMXw+n1JTU63f8aYgJDUgcIstLi6OkAQAQAdzIVNlmLgNAABgg5AEAABgg5AEAABgg5AEAABgg5AEAABgg5AEAABgg5AEAABgg5AEAABgg80k20C136iwvEJHjleqd48YjUpLUGQEz4UDAKA9ISS1stzSQ5q/drcOeSut95JdMZo7YaDGDU5uw54BAICauN3WinJLD+mBV4qCApIkebyVeuCVIuWWHmqjngEAgPMRklpJtd9o/trdMjZtgffmr92tar9dBQAAaG2EpFZSWF5RawSpJiPpkLdSheUVrdcpAABQp5BDUn5+viZMmKCUlBQ5HA6tWbPGaquqqlJOTo6GDBmi2NhYpaSkaMqUKTp48KDtsU6fPq1hw4bJ4XCopKQkqG3Hjh269tprFRMTo9TUVC1atKjW51euXKkBAwYoJiZGQ4YM0YYNG4LajTF67LHHlJycrK5duyojI0N79+4N9ZSbxZHjdQekptQBAICWFXJIOnnypIYOHaolS5bUajt16pSKioo0Z84cFRUVadWqVSorK9Mtt9xie6yHH35YKSkptd73+XwaO3as+vXrp23btmnx4sWaN2+eXnzxRavmvffe06RJk5Sdna3i4mJlZWUpKytLpaWlVs2iRYv07LPPatmyZdqyZYtiY2OVmZmpysrWDyK9e8Q0ax0AAGhZDmNMkyfBOBwOrV69WllZWXXWfPDBBxo1apT27dunvn37Wu+/+eabmjVrlv785z9r0KBBKi4u1rBhwyRJS5cu1aOPPiqPx6Po6GhJ0iOPPKI1a9Zoz549kqTbb79dJ0+e1Lp166xjXn311Ro2bJiWLVsmY4xSUlL0i1/8Qv/6r/8qSfJ6vUpKStLLL7+sO+64o1Hn6PP55HK55PV6FRcXF8rlCVLtNxrz5CZ5vJW285IcktyuGL2T8z22AwAA4AI1x+93i89J8nq9cjgcio+Pt947fPiw7r33Xv33f/+3unXrVuszBQUFuu6666yAJEmZmZkqKyvT0aNHrZqMjIygz2VmZqqgoECSVF5eLo/HE1Tjcrk0evRoq6Y1RUY4NHfCQEnnAlFNgddzJwwkIAEA0E60aEiqrKxUTk6OJk2aZKU4Y4x+/OMf6/7779fIkSNtP+fxeJSUlBT0XuC1x+Opt6Zme83P2dXYOX36tHw+X9Bfcxk3OFlL7xohtyv4lprbFaOld41gnyQAANqRFttMsqqqShMnTpQxRkuXLrXef+6553T8+HHNnj27pb76gixYsEDz589vseOPG5ysGwe62XEbAIB2rkVGkgIBad++fcrLywu6F7hp0yYVFBTI6XQqKipKl156qSRp5MiRmjp1qiTJ7Xbr8OHDQccMvHa73fXW1Gyv+Tm7GjuzZ8+W1+u1/g4cOBDy+TckMsKh9EsSdeuwPkq/JJGABABAO9TsISkQkPbu3au33npLiYmJQe3PPvustm/frpKSEpWUlFjL9pcvX64nnnhCkpSenq78/HxVVVVZn8vLy1P//v3Vs2dPq2bjxo1Bx87Ly1N6erokKS0tTW63O6jG5/Npy5YtVo0dp9OpuLi4oD8AABB+Qr7dduLECX388cfW6/LycpWUlCghIUHJycn64Q9/qKKiIq1bt07V1dXW/J+EhARFR0cHrXCTpO7du0uSLrnkEl100UWSpDvvvFPz589Xdna2cnJyVFpaqmeeeUZPP/209bkZM2bo+uuv11NPPaXx48fr9ddf19atW61tAhwOh2bOnKlf//rXuuyyy5SWlqY5c+YoJSWl3tV4AAAAkiQTos2bNxud2yA66G/q1KmmvLzctk2S2bx5s+3xAp8pLi4Oen/79u1mzJgxxul0mj59+piFCxfW+uyKFSvM5ZdfbqKjo82gQYPM+vXrg9r9fr+ZM2eOSUpKMk6n09xwww2mrKwspPP1er1GkvF6vSF9DgAAtJ3m+P2+oH2SwkFz7ZMEAABaT4fYJwkAAKAjIiQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYICQBAADYCDkk5efna8KECUpJSZHD4dCaNWustqqqKuXk5GjIkCGKjY1VSkqKpkyZooMHD1o1n332mbKzs5WWlqauXbvqkksu0dy5c3XmzJmg79mxY4euvfZaxcTEKDU1VYsWLarVl5UrV2rAgAGKiYnRkCFDtGHDhqB2Y4wee+wxJScnq2vXrsrIyNDevXtDPWUAABCGQg5JJ0+e1NChQ7VkyZJabadOnVJRUZHmzJmjoqIirVq1SmVlZbrlllusmj179sjv9+t3v/uddu3apaefflrLli3TL3/5S6vG5/Np7Nix6tevn7Zt26bFixdr3rx5evHFF62a9957T5MmTVJ2draKi4uVlZWlrKwslZaWWjWLFi3Ss88+q2XLlmnLli2KjY1VZmamKisrQz1tAAAQbswFkGRWr15db01hYaGRZPbt21dnzaJFi0xaWpr1+oUXXjA9e/Y0p0+ftt7Lyckx/fv3t15PnDjRjB8/Pug4o0ePNtOmTTPGGOP3+43b7TaLFy+22o8dO2acTqd57bXXGnV+xhjj9XqNJOP1ehv9GQAA0Laa4/e7xeckeb1eORwOxcfH11uTkJBgvS4oKNB1112n6Oho673MzEyVlZXp6NGjVk1GRkbQcTIzM1VQUCBJKi8vl8fjCapxuVwaPXq0VWPn9OnT8vl8QX8AACD8tGhIqqysVE5OjiZNmqS4uDjbmo8//ljPPfecpk2bZr3n8XiUlJQUVBd47fF46q2p2V7zc3Y1dhYsWCCXy2X9paamNuZUAQBAJ9NiIamqqkoTJ06UMUZLly61rfn88881btw4/ehHP9K9997bUl0JyezZs+X1eq2/AwcOtHWXAABAG4hqiYMGAtK+ffu0adMm21GkgwcP6rvf/a6uueaaoAnZkuR2u3X48OGg9wKv3W53vTU12wPvJScnB9UMGzaszr47nU45nc5GnikAAOismn0kKRCQ9u7dq7feekuJiYm1aj7//HN95zvf0VVXXaWXXnpJERHB3UhPT1d+fr6qqqqs9/Ly8tS/f3/17NnTqtm4cWPQ5/Ly8pSeni5JSktLk9vtDqrx+XzasmWLVQMAAFCXkEPSiRMnVFJSopKSEknnJkiXlJRo//79qqqq0g9/+ENt3bpVr776qqqrq+XxeOTxeKx9kAIBqW/fvvrNb36jv//971ZNwJ133qno6GhlZ2dr165dWr58uZ555hnNmjXLqpkxY4Zyc3P11FNPac+ePZo3b562bt2q6dOnS5IcDodmzpypX//613rjjTe0c+dOTZkyRSkpKcrKyrqASwYAAMJCqMvhNm/ebCTV+ps6daopLy+3bZNkNm/ebIwx5qWXXqqzpqbt27ebMWPGGKfTafr06WMWLlxYqy8rVqwwl19+uYmOjjaDBg0y69evD2r3+/1mzpw5JikpyTidTnPDDTeYsrKykM6XLQAAAOh4muP322GMMa2cyzoUn88nl8slr9db5wo9AADQvjTH7zfPbgMAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALBBSAIAALARckjKz8/XhAkTlJKSIofDoTVr1lhtVVVVysnJ0ZAh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9JA1mjRkyBDdfffd+vnPf26NanL9Gq89XavG9KW9CgSkffv2KS8vzxpFkjrm9SMkhTljjKZPn67Vq1dr06ZNSktLC2q/6qqr1KVLF23cuNF6r6ysTPv371d6erokKT09XTt37gz6hz/wL0fgBzA9PT3oGIGawDGio6N11VVXBdX4/X5t3LjRqmmPbrjhBu3cuVMlJSXW38iRIzV58mTr/3P96vbtb3+71pYTH330kfr16ydJSktLk9vtDjovn8+nLVu2BF2/Y8eOadu2bVbNpk2b5Pf7NXr0aKsmPz9fVVVVVk1eXp769++vnj17WjX1XeP26NSpU4qICP7PeGRkpPx+vySuXyja07VqTF/ao0BA2rt3r9566y0lJiYGtXfI6xfSNG90Og888IBxuVzm7bffNocOHbL+Tp06ZdXcf//9pm/fvmbTpk1m69atJj093aSnp1vtgSXsY8eONSUlJSY3N9d84xvfsF3C/tBDD5kPP/zQLFmyxHYJu9PpNC+//LLZvXu3ue+++0x8fHzQqq+OoObqNmO4fvUpLCw0UVFR5oknnjB79+41r776qunWrZt55ZVXrJqFCxea+Ph487//+79mx44d5tZbb7Vdlj18+HCzZcsW884775jLLrssaFnxsWPHTFJSkrn77rtNaWmpef311023bt1qLSuOiooyv/nNb8yHH35o5s6d2+6WsJ9v6tSppk+fPtYWAKtWrTK9evUyDz/8sFXD9fva8ePHTXFxsSkuLjaSzH/8x3+Y4uJia/VVe7pWjelLa6vv+p05c8bccsst5qKLLjIlJSVBvyc1V6p1tOtHSApzkmz/XnrpJavmq6++Mj/96U9Nz549Tbdu3cw//dM/mUOHDgUd57PPPjM33XST6dq1q+nVq5f5xS9+YaqqqoJqNm/ebIYNG2aio6PNN7/5zaDvCHjuuedM3759TXR0tBk1apR5//33W+K0W9T5IYnrV7+1a9eawYMHG6fTaQYMGGBefPHFoHa/32/mzJljkpKSjNPpNDfccIMpKysLqvnyyy/NpEmTTPfu3U1cXJy55557zPHjx4Nqtm/fbsaMGWOcTqfp06ePWbhwYa2+rFixwlx++eUmOjraDBo0yKxfv775T7gZ+Xw+M2PGDNO3b18TExNjvvnNb5pHH3006EeJ6/e1zZs32/73burUqcaY9nWtGtOX1lbf9SsvL6/z92Tz5s3WMTra9XMYU2NrVgAAAEhiThIAAIAtQhIAAIANQhIAAIANQhIAAIANQhIAAIANQhIAAIANQhIAAIANQhIAAIANQhIAAIANQhIAAIANQhIAAIANQhIAAICN/w8W2Kll9hrj6gAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#SQUARING UP UNDERPOPPED\n",
    "HDnAddedUnits, HDaddedPop = [0]*nHDs, [0.]*nHDs\n",
    "underPoppedList, stillUnderPoppedList = list(),list()\n",
    "minDistrictPop, maxDistrictPop = 0.95 * aDP, 1.05 * aDP\n",
    "for t,pop in enumerate(HDvPop):\n",
    "    aDP = countyADP[countyNo[t]]\n",
    "    minDistrictPop, maxDistrictPop = 0.95 * aDP, 1.05 * aDP\n",
    "    if pop < minDistrictPop and t in popHDlist:\n",
    "        underPoppedList.append(t)\n",
    "maxGap = maxDistrictPop - aDP \n",
    "print(\"We will now square up the\",len(underPoppedList),\"HDs with pop <\",int(minDistrictPop),\"to within\",int(maxGap) )\n",
    "startTime = time.time()\n",
    "for ii,t in enumerate(underPoppedList):\n",
    "    aDP = countyADP[countyNo[t]]\n",
    "    minDistrictPop, maxDistrictPop = 0.95 * aDP, 1.05 * aDP\n",
    "    \n",
    "    if ii%100 == 0:\n",
    "        print(\"working on squaring up HD\",t,\"time is now\",int(time.time() - startTime)) \n",
    "    gap = aDP - HDvPop[t]\n",
    "    origGap = gap\n",
    "    nearHDlist, nearHDscore = list(), list()  #these will be dynamic lists of the nearby underused units\n",
    "    for u in HDunitList[t]:\n",
    "        for uu in unitNbrs[u]:\n",
    "            if uu not in HDunitList[t] and uu not in nearHDlist and unitPop[uu] < gap + maxGap:\n",
    "                nearHDlist.append(uu)   #below line: bias toward close, underused\n",
    "                nearHDscore.append((unitUse[uu]-1.) + unitCP[uu].distance(hdCP[t]) / avgDist[t] )  \n",
    "    currList = HDunitList[t].copy()\n",
    "    addedList = list()\n",
    "    stillGoing = True\n",
    "    while gap > maxGap and len(nearHDlist) > 0 and stillGoing:   #add the lowest-scoring neighboring underused unit until we've roughly squared the HDpop\n",
    "        idx, i, notYetPicked = np.argsort(nearHDscore), 0, True\n",
    "        while i < len(nearHDscore) and notYetPicked:        \n",
    "            listNo = idx[i]   #nearHDscore.index(np.min(nearHDscore))\n",
    "            unitNoToAdd = nearHDlist[listNo]  #add this unit ...\n",
    "            canAdd  = wontEnclave(unitNoToAdd, currList, unitNbrs, borderUnits)\n",
    "            if canAdd: \n",
    "                notYetPicked = False\n",
    "            else:\n",
    "                i +=1\n",
    "        if notYetPicked:\n",
    "            stillGoing = False  #can't add any more units without creating an enclave\n",
    "        else:\n",
    "            gap -= unitPop[unitNoToAdd]\n",
    "            addedList.append(unitNoToAdd)\n",
    "            currList.append( unitNoToAdd)\n",
    "            for uu in unitNbrs[unitNoToAdd]:             # ... and add its nonHD neighbors to future candidates\n",
    "                if uu not in currList and uu not in nearHDlist and unitPop[uu] < gap + maxGap:  \n",
    "                    nearHDlist.append(uu)\n",
    "                    nearHDscore.append((unitUse[uu]-1.) + unitCP[uu].distance(hdCP[t]) / avgDist[t] )  #bias toward close, underused\n",
    "            del nearHDscore[nearHDlist.index(unitNoToAdd)]        \n",
    "            del nearHDlist[ nearHDlist.index(unitNoToAdd) ]\n",
    "            for i, uu in enumerate(nearHDlist.copy()):\n",
    "                if unitPop[uu] > gap + maxGap:   #with the added pop from another unit, this unit is now too big to add\n",
    "                    del nearHDscore[nearHDlist.index(uu)]\n",
    "                    del nearHDlist[ nearHDlist.index(uu)]\n",
    "    for u in addedList:\n",
    "        unitUse[u] += HDweight[t] * nDistricts\n",
    "    HDunitList[t] += addedList\n",
    "    HDvPop[t]    = np.sum( [unitPop[u] for u in HDunitList[t] ] )\n",
    "    HDnAddedUnits[t] = len(addedList)\n",
    "    HDaddedPop[t] = np.sum( [unitPop[u] for u in addedList] )\n",
    "    if HDvPop[t] > maxDistrictPop:\n",
    "        print(\"Oops! HD\",t,\"now has overshot pop =\",int(HDvPop[t]),\"not\",int(aDP),\"after adding\",HDaddedPop[t] )\n",
    "    if HDvPop[t] < minDistrictPop:\n",
    "        stillUnderPoppedList.append(t)\n",
    "print(\"We have attempted to address underpop in a total of\",len(underPoppedList),\"HDs\")\n",
    "if len(stillUnderPoppedList) > 0:\n",
    "    print(\"... but we got stuck in\",len(stillUnderPoppedList))\n",
    "print(\"Here is a scatterplot of original (x) to final pop (y)\")\n",
    "plt.scatter([HDvPop[t] - HDaddedPop[t] for t in underPoppedList], [HDvPop[t] for t in underPoppedList])\n",
    "plt.axhline(y=aDP, xmin = 0.9*aDP, xmax = 1.1*aDP, ls=\"--\")\n",
    "plt.axvline(x=aDP, ymin = 0.9*aDP, ymax = 1.1*aDP, ls=\"--\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 256,
   "id": "297e4621-437a-4eab-8aad-bd442ef38a98",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "previous unit avg and sd usage are 0.98298 0.0785\n",
      "amped unit avg and sd usage are 0.99232 0.08061\n"
     ]
    },
    {
     "data": {
      "image/png": "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GeXm5prU1DyvGVdUV82D+x98nbma35s3bx6KiorER3Z2dr29ExERkf1qtiD02WefoX///ggNDa23VqvVwsnJSbx1d0REBI4ePWqyBklKSgq6d+8u3pgpIiICaWlpJsdJSUlBREQEACA4OBgBAQEmNXq9HidPnhRrfk+hUMDDw8PkQURERI6r0ZfGDAYDMjMzxedZWVnQarXw9vYWF2rT6/XYsWMHVq5cWev16enpOHnyJKKiotC2bVukp6dj1qxZ+Mtf/iKGnHHjxmHJkiWYPHky5s6diwsXLiA5ORmrV68WjzNz5kxERkZi5cqViImJwdatW3HmzBl88sknAKrvZ5SQkIC3334bXbt2FafPBwYG1nt3TCIiIpKGRgehM2fOICoqSnxeM94nNjZWXDNk69atEAQBY8eOrfV6hUKBrVu3YvHixTAajQgODsasWbNMxg15enri4MGDiIuLQ//+/eHj44OFCxea3C78j3/8I7Zs2YL58+fjrbfeQteuXbF7927xHkIAMGfOHBQXF2PatGkoLCzEoEGDsH//ft5DiIiIGq4wGyi5a5v3cmsHqNS2ea8WcPjwYURFRaGgoAAqlaql2wHAJTYs4hIbRGQNXGKj9atzuYbCbGDtQKCixDaNuLgBcaccNgxZMwi12BIbREREklFytzoEPb8e8OnWvO+V9zOwc2r1ezpoEGqNmvWGikRERA7BpxsQGNa8j4cMWvv378egQYOgUqnQrl07PPPMM7h27RoA4Pr165DJZNi+fTsGDx4MpVKJJ554Aj///DNOnz6NAQMGwN3dHSNGjMCdO3fEY7766qsYNWoUlixZAl9fX3h4eGD69OkoL//PmmtVVVVISkpCcHAwlEolQkND8T//8z8mve3btw/dunWDUqlEVFSUODu8NWEQIiIismPFxcVITEzEmTNnkJaWBicnJzz33HOoqqoSaxYtWoT58+fj7NmzeOSRRzBu3DjMmTMHycnJ+O6775CZmYmFCxeaHDctLQ0//fQTDh8+jK+++go7d+40uddeUlISvvjiC6xbtw4XL14UJz4dOXIEAJCdnY3nn38eI0eOhFarxZQpU0wWV28teGmMiIjIjv1+UfMNGzbA19cXly5dgru7OwDgb3/7GzQaDYDqWddjx45FWloannzySQDA5MmTxQlPNeRyOTZs2AA3Nzf06tULS5cuxezZ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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "prevUnitUse = [0.]*nUnits\n",
    "for t in popHDlist:\n",
    "    for u in latestHDlist[t]:\n",
    "        prevUnitUse[u] += HDweight[t] * nDistricts\n",
    "\n",
    "ampedUnitUse = [0. for u in range(nUnits)]\n",
    "ampedHDlist = [HDunitList[t].copy() for t in range(nHDs)]\n",
    "ampedHDpop = [HDvPop[t] for t in range(nHDs) ]\n",
    "for t in popHDlist:\n",
    "    for u in ampedHDlist[t]:\n",
    "        ampedUnitUse[u] += HDweight[t] * nDistricts   #KISS - recalc these\n",
    "plt.hist(prevUnitUse,bins=50,weights=unitPop,label=\"previous\",histtype=\"step\")\n",
    "plt.hist(ampedUnitUse, bins=50, weights=unitPop,label=\"amped\",histtype=\"step\")\n",
    "plt.legend()\n",
    "ampedUnitUseAvg, ampedUnitUseSD = getWeightedAvgAndSD(ampedUnitUse,unitPop)\n",
    "print(\"previous unit avg and sd usage are\",r5(latestAvg), r5(latestSD) )\n",
    "print(\"amped unit avg and sd usage are\",r5(ampedUnitUseAvg), r5(ampedUnitUseSD) )\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 257,
   "id": "03a1e5af-9002-4788-89d5-ed0044231ee2",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Continuing with narrowing the distro.  This loop: remove overused units from overpopped HDs\n",
      "Let's now square down the 118 overPopped HDs to within 5984\n",
      "working on squaring down HD 1198 time is now 0\n",
      "We have attempted to address underpop in a total of 118 HDs\n",
      "Here is a scatterplot of original to final pop\n"
     ]
    },
    {
     "data": {
      "image/png": "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uI57s3jxYmVnZ7t/Bg8eHFljAQBAyktIQLVgwQIdO3ZMa9eu1ebNm3XvvfdqxowZ2rFjRyKq42H+/PlyOp3un88++yzRVQIAAEku7psj7927V7/4xS9UW1urUaNGSZLGjh2rd999V88++6yWLVsmu92uw4cPe7zv3Llzampqkt1ulyTZ7XYdOnTIo4zr90BlXMe9ycjIUEZGRmSNBAAAXUrce6hOnTp1/sRpnqfu1q2b2traJEmFhYU6duyYtmzZ4j6+bt06tbW1aeLEie4yVVVVamlpcZeprKzU8OHD1bdvX3eZd955x+M8lZWVKiwsjH7DAABAlxVyQHXixAk5HA53fqn6+no5HA59+umnks7nj3I4HKqrq5Mk7d69Ww6Hwz1vacSIERo6dKjmzJmjjRs3au/evXriiSdUWVmpkpISSdJXv/pVFRcXa/bs2dq4caPef/99zZ07V7fccovy8/MlSbfeeqvS09NVVlamnTt3asWKFXrqqad07733uus6b948VVRU6IknntCuXbu0aNEibd68WXPnzg37ggEAAHQS6rLA9evXG0mdfu644w5jjDHPP/+81+MLFy50f8ZHH31kbr75ZjNgwADTq1cv8/d///ed0igcOXLElJaWmgsuuMBkZWWZWbNmmePHj3uU2bZtm5k8ebLJyMgwgwYNMo8++min+r7yyivm0ksvNenp6WbUqFHmrbfeCqm9pE0AAMB64v38thljTGJCOWtobm5Wdna2nE6nsrKyEl0dAAAQhHg/v9nLDwAAIEIEVAAAABEioAIAAIgQARUAAECECKgAAAAiREAFAAAQIQIqAACACBFQAQAARIiACgAAIEIEVAAAABEioAIAAIgQARUAAECECKgAAAAiREAFAAAQIQIqAACACBFQAQAARIiACgAAIELdE10BJLfWNqON9U06fPy0BvTJ1ISCXHVLsyW6WgAAJBUCKvhUUdugR96sU4PztPu1vOxMLZw+UsWj8xJYMwAAkgtDfvCqorZBd79Y4xFMSVKj87TufrFGFbUNCaoZAADJh4AKnbS2GT3yZp2Ml2Ou1x55s06tbd5KAADQ9RBQoZON9U2deqbaM5IanKe1sb4pfpUCACCJEVChk8PHfQdT4ZQDACDVEVChkwF9MqNaDgCAVEdAhU4mFOQqLztTvpIj2HR+td+Egtx4VgsAgKRFQIVO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Jk+erPXr1ydlm/21V5IWLVqkESNGqHfv3urbt6+Kioq0YcMGjzJNTU2aOXOmsrKylJOTo7KyMp04ccKjjBX+poNp7759+1RWVqaCggL17NlTl1xyiRYuXKizZ88mZXuj0eb2rH7fCqW9qXLfCrbNqXTfau+uu+6SzWbTf/7nf3q8bqX7luuDUsqaNWvMgw8+aF599VUjybz22mvuY8eOHTNFRUVmxYoVZteuXaa6utpMmDDBXHbZZV4/61/+5V/MN77xDSPJbN261f260+k0AwcONDNnzjS1tbXmpZdeMj179jS//OUv3WXef/99061bN7NkyRJTV1dnHnroIdOjRw+zY8cOd5lHH33UZGdnm1WrVplt27aZG2+80RQUFJgvvvgiru397//+b9O3b1+zdOlSs3v3brNz506zYsUK9/Fz586Z0aNHm6KiIrN161azZs0a079/fzN//nx3mU8++cT06tXL3Hvvvaaurs4888wzplu3bqaiosJd5uWXXzbp6enmt7/9rdm5c6eZPXu2ycnJMYcOHQq6vdFq87Bhw8w3v/lNs23bNvPRRx+Zf/qnfzK9evUyDQ0NSddmf+01xpg//OEPprKy0uzdu9fU1taasrIyk5WVZQ4fPuwuU1xcbMaOHWs+/PBD8+6775qhQ4ea0tJS93Gr/E0H0963337bfP/73zd//vOfzd69e83rr79uBgwYYO67776kbG802tye1e9bwbY3le5bwbY5le5bLq+++qoZO3asyc/PN08++aTHMSvdt4wxJuUCqvb8/SO6bNy40Ugy+/fv93h9zZo1ZsSIEWbnzp2dbkzPPfec6du3rzlz5oz7tfLycjN8+HD37zNmzDA33HCDx2dOnDjRzJkzxxhjTFtbm7Hb7ebxxx93Hz927JjJyMgwL730UqhNNcaE196WlhYzaNAg8+tf/9rne9asWWPS0tJMY2Oj+7WlS5earKws9zX48Y9/bEaNGuXxvu9+97tm2rRp7t8nTJhg7rnnHvfvra2tJj8/3yxevDjoNnYUTpv/+te/GkmmqqrKXaa5udlIMpWVlcaY5G1zMO11Op1Gklm7dq0xxpi6ujojyWzatMld5u233zY2m80cOHDAGGPtv+mO7fVmyZIlpqCgwP17srbXmMjanKr3rY7t7Qr3rY5tTsX71ueff24GDRpkamtrzZAhQzwCKive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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#SQUARING DOWN\n",
    "print(\"Continuing with narrowing the distro.  This loop: remove overused units from overpopped HDs\")\n",
    "HDnShedUnits = [0]*nHDs\n",
    "overPoppedList, stillOverPoppedList = list(), list()\n",
    "startTime = time.time()\n",
    "for t,pop in enumerate(HDvPop):\n",
    "    aDP = countyADP[countyNo[t]]\n",
    "    minDistrictPop, maxDistrictPop = 0.95 * aDP, 1.05 * aDP\n",
    "    if pop > maxDistrictPop and t in popHDlist:\n",
    "        overPoppedList.append(t)\n",
    "\n",
    "maxGap = aDP - minDistrictPop   \n",
    "print(\"Let's now square down the\",len(overPoppedList),\"overPopped HDs to within\", int(maxGap))   \n",
    "for ii,t in enumerate(overPoppedList):\n",
    "    aDP = countyADP[countyNo[t]]\n",
    "    minDistrictPop, maxDistrictPop = 0.95 * aDP, 1.05 * aDP\n",
    "    if ii%200 == 0:\n",
    "        print(\"working on squaring down HD\",t,\"time is now\",int(time.time()-startTime))\n",
    "    unbroken, noEnclave, sPL, ePL = enclaveCheck(HDunitList[t],unitNbrs)\n",
    "    if not (unbroken and noEnclave):\n",
    "        print(\"SKIPPING shedding attempt on overpopped HD\",t,\"with pop\",HDvPop[t],\"because it was not legal to start\")\n",
    "    else:\n",
    "        excess = HDvPop[t] - aDP\n",
    "        origExcess = excess\n",
    "        HDboundaryList, HDboundaryScore = list(), list()  #these will be dynamic lists of the overused border units to jettison\n",
    "        #distList = [hdCP[t].distance(unitCP[u]) for u in HDunitList[t] ]\n",
    "        starterU = homeU[t] #HDunitList[t][distList.index(np.min(distList))] #update from vanillaHD\n",
    "        barredSet = barredJettisonSet.union({starterU})\n",
    "        for u in set(HDunitList[t]).difference(barredSet):\n",
    "            isBoundary = False\n",
    "            for uu in unitNbrs[u]:\n",
    "                if uu not in HDunitList[t]:\n",
    "                    isBoundary = True\n",
    "                    break\n",
    "            if isBoundary and HDvPop[t] - unitPop[u] > aDP - maxGap:  #shedding this unit won't send us too far under targetpop\n",
    "                HDboundaryList.append(u)\n",
    "                HDboundaryScore.append((1. - unitUse[u]) - unitCP[u].distance(hdCP[t]) / avgDist[t])  #low-score = bias toward far, overused\n",
    "        currList = HDunitList[t].copy()\n",
    "        shedList, stillGoing = list(), True\n",
    "        while excess > maxGap and len(HDboundaryList) > 0 and stillGoing:   #shed the highest-scoring neighboring overused unit until we've roughly squared the HDpop\n",
    "            idx, i, notYetPicked = np.argsort(HDboundaryScore), 0, True\n",
    "            while i < len(HDboundaryScore) and notYetPicked and stillGoing:        \n",
    "                listNo = idx[i]   #low (large negative) score is preferred to shed\n",
    "                unitNoToShed = HDboundaryList[listNo]  # attempt to shed this unit ...\n",
    "                tryList = list(set(currList).difference( {unitNoToShed} ) )\n",
    "                unbroken, noEnclave, sPL, ePL = enclaveCheck(tryList,unitNbrs) \n",
    "                if unbroken and noEnclave:             #... if that won't eff up contiguity\n",
    "                    notYetPicked = False\n",
    "                else:\n",
    "                    i +=1\n",
    "            if notYetPicked:\n",
    "                stillGoing = False  #can't drop any more units without creating an enclave\n",
    "                print(\"can't drop any more units to HD\",t,\"without creating an enclave\")\n",
    "            else: #add this eligible unit\n",
    "                shedList.append(unitNoToShed)\n",
    "                excess -= unitPop[unitNoToShed]        \n",
    "                del currList[currList.index(unitNoToShed) ]\n",
    "                del HDboundaryList[listNo]\n",
    "                del HDboundaryScore[listNo]\n",
    "                for u in unitNbrs[unitNoToShed]:      # ... and ID any neighboring units that will now be on boundary after we shed this unit\n",
    "                    if u in currList and u not in HDboundaryList and (unitPop[u] <= excess + maxGap and u not in barredSet): \n",
    "                        HDboundaryList.append(u)\n",
    "                        HDboundaryScore.append( (1. - unitUse[u]) - unitCP[u].distance(hdCP[t]) / avgDist[t] )  #low-score, bias toward far & overused       \n",
    "                for uu in HDboundaryList.copy():\n",
    "                    if unitPop[uu] > excess + maxGap:  #checking to see if the latest pop change DQ's any large units on current boundary\n",
    "                        del HDboundaryScore[HDboundaryList.index(uu)]\n",
    "                        del HDboundaryList[HDboundaryList.index(uu)]   \n",
    "        for u in shedList:\n",
    "            unitUse[u] -= HDweight[t] * nDistricts\n",
    "        HDunitList[t], HDvPop[t] = currList.copy(), np.sum( [unitPop[u] for u in currList ] )    \n",
    "        if HDvPop[t] < minDistrictPop:\n",
    "            print(\"Oops! HD\",t,\"now has undershot pop =\",int(HDvPop[t]),\"not\",int(aDP),\"after shedding\",\n",
    "                 np.sum([unitPop[u] for u in shedList]) )        \n",
    "        if HDvPop[t] < minDistrictPop:\n",
    "            stillOverPoppedList.append(t)\n",
    "        HDnShedUnits[t] = -1 * len(shedList)\n",
    "        if homeU[t] not in HDunitList[t]:\n",
    "            print(\"WARNING: we lost the home unit\",homeU[t],\"from HD\",HD)\n",
    "            lostHomeUlist.append(t)\n",
    "            \n",
    "print(\"We have attempted to address underpop in a total of\",len(overPoppedList),\"HDs\")\n",
    "if len(stillOverPoppedList) > 0:\n",
    "    print(\"... but we got stuck in\",len(stillOverPoppedList))\n",
    "print(\"Here is a scatterplot of original to final pop\")\n",
    "plt.scatter([ampedHDpop[t] for t in overPoppedList], [HDvPop[t] for t in overPoppedList])\n",
    "plt.axhline(aDP, 0.9*aDP, 1.1*aDP, ls=\"--\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 258,
   "id": "74bd1d52-9d47-4861-9ee3-1de4379575ed",
   "metadata": {},
   "outputs": [],
   "source": [
    "for t in range(nHDs):\n",
    "    if HDvPop[t] > 1.2* aDP:\n",
    "        print(t,countyNo[t],HDvPop[t],np.sum([tractPop[tt] for tt in latestHDlist[t] ] ))\n",
    "        print(\"  \",len(HDunitList[t]),len(set(HDunitList[t])), len(latestHDlist[t]) )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 264,
   "id": "508f7c6b-1b0e-412f-88a7-ae2fceb3c70a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "6790 0.9499094656547367\n",
      "we will assign the HDunitList for wayward vtd 6790 from its closest in-unit nbr\n"
     ]
    }
   ],
   "source": [
    "for t in stillUnderPoppedList:\n",
    "    print(t,HDvPop[t]/countyADP[countyNo[t]] )\n",
    "    for u in range(nUnits):\n",
    "        if t in unitVTDlist[u]:\n",
    "            break\n",
    "    print(\"we will assign the HDunitList for wayward vtd\",t,\"from its closest in-unit nbr\")\n",
    "    nears, nearDists = list(), list()\n",
    "    for tt in unitVTDlist[u]:\n",
    "        if tt != t:\n",
    "            nears.append(tt)\n",
    "            nearDists.append(tractCP[t]. distance(tractCP[tt]) )\n",
    "    nearT = nears[nearDists.index(np.min(nearDists))]\n",
    "    HDunitList[t] = HDunitList[nearT].copy()\n",
    "    HDvPop[t] = HDvPop[nearT]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 266,
   "id": "54ff49fe-2472-4198-b619-4021c243e1eb",
   "metadata": {},
   "outputs": [],
   "source": [
    "hasSplitUnit = [0]*nHDs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 268,
   "id": "c78ab2f2-f49d-496e-8ec7-6cda44d41aa1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "updating our unitUse, underpopped and overpopped lists\n",
      "unit use histogram\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "the number of stillUnder and stillOver HDs is 0 3\n"
     ]
    }
   ],
   "source": [
    "print(\"updating our unitUse, underpopped and overpopped lists\")\n",
    "unitUse = [0.]*nUnits\n",
    "stillUnder, stillOver = list(), list()\n",
    "for t in popHDlist:\n",
    "    aDP = countyADP[countyNo[t]]\n",
    "    minDistrictPop, maxDistrictPop = 0.95*aDP, 1.05*aDP\n",
    "    for u in HDunitList[t]:\n",
    "        unitUse[u] += nDistricts * HDweight[t]\n",
    "    if hasSplitUnit[t] == 1:\n",
    "        unitUse[splitUnitNo[t]] -= (1. - splitUnitFrac[t]) * nDistricts * HDweight[t]\n",
    "    if HDvPop[t] < minDistrictPop:\n",
    "        stillUnder.append(t)\n",
    "    if HDvPop[t] > maxDistrictPop:\n",
    "        stillOver.append(t)\n",
    "print(\"unit use histogram\")\n",
    "plt.hist(unitUse, weights = unitPop)\n",
    "plt.show()\n",
    "print(\"the number of stillUnder and stillOver HDs is\",len(stillUnder),len(stillOver) )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 269,
   "id": "7a227ba5-ec12-433d-872f-3e853a619242",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "6848 1.0500336529418564\n",
      "we will assign the HDunitList for wayward vtd 6848 from its closest in-unit nbr\n",
      "1226 1.0501736019146775\n",
      "we will assign the HDunitList for wayward vtd 1226 from its closest in-unit nbr\n",
      "7373 1.0501510416548636\n",
      "we will assign the HDunitList for wayward vtd 7373 from its closest in-unit nbr\n"
     ]
    }
   ],
   "source": [
    "for t in stillOver:\n",
    "    print(t,HDvPop[t]/countyADP[countyNo[t]] )\n",
    "    for u in range(nUnits):\n",
    "        if t in unitVTDlist[u]:\n",
    "            break\n",
    "    print(\"we will assign the HDunitList for wayward vtd\",t,\"from its closest in-unit nbr\")\n",
    "    nears, nearDists = list(), list()\n",
    "    for tt in unitVTDlist[u]:\n",
    "        if tt != t and tt not in stillOver:\n",
    "            nears.append(tt)\n",
    "            nearDists.append(tractCP[t]. distance(tractCP[tt]) )\n",
    "    if len(nears) > 0:\n",
    "        nearT = nears[nearDists.index(np.min(nearDists))]\n",
    "        HDunitList[t] = HDunitList[nearT].copy()\n",
    "        HDvPop[t] = HDvPop[nearT]\n",
    "    else:\n",
    "        print(t,\"is a lonely overpopped\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 270,
   "id": "cd0da95c-4d68-4d71-8a29-835eaa078654",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "updating our unitUse, underpopped and overpopped lists\n",
      "unit use histogram\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "the number of stillUnder and stillOver HDs is 0 0\n"
     ]
    }
   ],
   "source": [
    "print(\"updating our unitUse, underpopped and overpopped lists\")\n",
    "unitUse = [0.]*nUnits\n",
    "stillUnder, stillOver = list(), list()\n",
    "for t in popHDlist:\n",
    "    aDP = countyADP[countyNo[t]]\n",
    "    minDistrictPop, maxDistrictPop = 0.95*aDP, 1.05*aDP\n",
    "    for u in HDunitList[t]:\n",
    "        unitUse[u] += nDistricts * HDweight[t]\n",
    "    if hasSplitUnit[t] == 1:\n",
    "        unitUse[splitUnitNo[t]] -= (1. - splitUnitFrac[t]) * nDistricts * HDweight[t]\n",
    "    if HDvPop[t] < minDistrictPop:\n",
    "        stillUnder.append(t)\n",
    "    if HDvPop[t] > maxDistrictPop:\n",
    "        stillOver.append(t)\n",
    "print(\"unit use histogram\")\n",
    "plt.hist(unitUse, weights = unitPop)\n",
    "plt.show()\n",
    "print(\"the number of stillUnder and stillOver HDs is\",len(stillUnder),len(stillOver) )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 271,
   "id": "40993be1-a4a5-4d5e-9239-8b7ef2831505",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "classify updated muni HDs by contiguity\n",
      "quick classification: who has contiguity problems?\n",
      "working on HD 6789 time is now 0\n",
      "working on HD 1655 time is now 0\n",
      "working on HD 8039 time is now 1\n",
      "out of 1447 total HDs, there were 1447.0 contiguous and 1447.0 complement-contiguous HDs\n",
      "0 HDs had both discontiguity problems, while enclave-only = 0 and discontig only= 0\n"
     ]
    }
   ],
   "source": [
    "print(\"classify updated muni HDs by contiguity\") #take from vanillaHD\n",
    "\n",
    "### THIS IS THE \"FIND DISCO\" CODE\n",
    "print(\"quick classification: who has contiguity problems?\")\n",
    "nUnbroken, nNoEnclave, smallPieceLists, enclaveLists, sPgenerator, eLgenerator = 0., 0., list(), list(), list(), list()\n",
    "smallPieceLengths, enclaveLengths = list(), list()\n",
    "doubleTroubleList = list()\n",
    "startTime = time.time()\n",
    "for i,t in enumerate(popHDlist):\n",
    "    if i%700 == 0:\n",
    "        print(\"working on HD\",t,\"time is now\",int(time.time() - startTime) )\n",
    "    unbroken, noEnclave,smallPieceList,enclaveList = enclaveCheck(HDunitList[t], unitNbrs,4) #,6) #6 is high (slow) to try to avoid false enclaves\n",
    "    if unbroken:\n",
    "        nUnbroken +=1\n",
    "    if noEnclave:\n",
    "        nNoEnclave +=1\n",
    "    if not unbroken:\n",
    "        smallPieceLists.append(smallPieceList)\n",
    "        smallPieceLengths.append(len(smallPieceList))\n",
    "        sPgenerator.append(t)\n",
    "    if not noEnclave and unbroken:   #district is contiguous but contains 1+ enclave\n",
    "        enclaveLists.append(enclaveList)\n",
    "        enclaveLengths.append(len(enclaveList))\n",
    "        eLgenerator.append(t)\n",
    "    if not noEnclave and not unbroken:  #extremely discontig (\"broken\") HDs can appear to have enclaves;\n",
    "        doubleTroubleList.append(t)\n",
    "print(\"out of\",len(popHDlist),\"total HDs, there were\",nUnbroken,\"contiguous and\",nNoEnclave,\"complement-contiguous HDs\")\n",
    "print(len(doubleTroubleList),\"HDs had both discontiguity problems, while enclave-only =\",len(eLgenerator),\n",
    "      \"and discontig only=\",len(sPgenerator)-len(doubleTroubleList) )\n",
    "\n",
    "if len(smallPieceLists) + len(enclaveLists) > 0:\n",
    "    print(\"here are the histograms of the small piece and enclave list lengths, total no =\",\n",
    "          len(smallPieceLists),len(enclaveLists) )\n",
    "    plt.hist([s for s in smallPieceLengths],label=\"small piece l units\",histtype='step',\n",
    "             cumulative=True,bins=[0,1,2,3,4,5,6,8,10,12,15,20,25,30,35,40,45,50,60,80,120,200])\n",
    "    plt.hist([e for e in enclaveLengths],label=\"enclave l units\",histtype='step',\n",
    "             cumulative=True,bins=[0,1,2,3,4,5,6,8,10,12,15,20,25,30,35,40,45,50,60,80,120,200])\n",
    "    plt.legend()\n",
    "    plt.show()\n",
    "    print(\"And here are the small-HD-piece and small-enclave pops\")\n",
    "    plt.hist([sum(unitPop[u] for u in s) for s in smallPieceLists],label=\"small piece 1 pop\",histtype='step')\n",
    "    plt.hist([sum(unitPop[u] for u in e) for e in enclaveLists],label=\"enclave 1 pop\",histtype='step')\n",
    "    plt.legend()\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 272,
   "id": "b5585f5f-0991-4405-8465-d50e4179238d",
   "metadata": {},
   "outputs": [],
   "source": [
    "ready2patchList = [HDunitList[t].copy() for t in range(nHDs)]  #safekeeping"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c59aff90-f5ce-438a-8d20-7bb045d8ad44",
   "metadata": {},
   "outputs": [],
   "source": [
    "###### error in below -- should be abs(excess) < aDP - minDistrictPop, not 2* maxGap leniency"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 273,
   "id": "b80db6c9-d9af-430d-ad01-20292ddecace",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Here, we exchange in under-used, THEN shed over-used\n",
      "Currently, we will stop patching when the overall sd of usage is less than 0.055\n"
     ]
    },
    {
     "name": "stdin",
     "output_type": "stream",
     "text": [
      "enter updated maxSD value 0.055\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "this would currently cover a total of 130 units\n"
     ]
    },
    {
     "name": "stdin",
     "output_type": "stream",
     "text": [
      "enter updated number of units to try boosting usage 50\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "there are currently 240 units out of 904 with usage below 0.98\n",
      "maxExchangePop is currently 0.15 fraction of avgDistrictPop\n",
      "Let's further tighten the distro with exchanges up to 5933\n",
      "current avg and SD of unit usage are 0.98902 0.08161 . Now trying to increase up to 50 units' underusage\n",
      "all done trying2increase usage of unit 54 final usage = 0.99419 0 sec elapsed 20 5 complete, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.99018 0.07195\n",
      "all done trying2increase usage of unit 2 final usage = 0.98139 2 sec elapsed 15 1 complete, failed patches, couldn't start= 2\n",
      "current avg and SD of usage are 0.99112 0.06242\n",
      "all done trying2increase usage of unit 81 final usage = 0.98131 2 sec elapsed 12 0 complete, failed patches, couldn't start= 5\n",
      "current avg and SD of usage are 0.99148 0.06135\n",
      "all done trying2increase usage of unit 60 final usage = 0.98002 2 sec elapsed 19 0 complete, failed patches, couldn't start= 10\n",
      "current avg and SD of usage are 0.99158 0.05776\n",
      "all done trying2increase usage of unit 1 final usage = 0.98242 3 sec elapsed 12 21 complete, failed patches, couldn't start= 1\n",
      "current avg and SD of usage are 0.9922 0.05079\n"
     ]
    }
   ],
   "source": [
    "#FIRST PATCHING BLOCK - boosting underuse.  Suppresses long strings.  For some states (e.g. MA), do overused first. MA:over-und-over-und\n",
    "#  When running Ohio the first time, 20 units took 7800 seconds\n",
    "print(\"Here, we exchange in under-used, THEN shed over-used\")\n",
    "maxSD = 0.055  #0.07  #0.05   #adjust down if distro already tight\n",
    "print(\"Currently, we will stop patching when the overall sd of usage is less than\",maxSD)\n",
    "maxSD = float(input(\"enter updated maxSD value\"))\n",
    "stopMinUse = 1. - maxSD\n",
    "#print(\"we will stop patching on individual underused units when their usage exceeds\",r5(stopMinUse))\n",
    "maxNtries = 0\n",
    "for u in range(nUnits):\n",
    "    if unitUse[u] < stopMinUse:\n",
    "        maxNtries +=1\n",
    "print(\"this would currently cover a total of\",maxNtries,\"units\")\n",
    "maxNtries = int(input(\"enter updated number of units to try boosting usage\"))\n",
    "stopMinUse = 0.98 #float(input(\"enter updated stopMinUse value for ending usage boost on a unit; I reco 0.98\"))\n",
    "nInPlay = 0\n",
    "for u in range(nUnits):\n",
    "    if unitUse[u] < stopMinUse:\n",
    "        nInPlay +=1\n",
    "print(\"there are currently\",nInPlay,\"units out of\",nUnits,\"with usage below\",stopMinUse)\n",
    "nSmallUsers = 5\n",
    "maxExchangePop = 0.15*aDP #blocky for muni\n",
    "print(\"maxExchangePop is currently\",r5(maxExchangePop/aDP),\"fraction of avgDistrictPop\")\n",
    "newMEPratio = 0.05 #float(input(\"Enter updated maxExchangePop fraction\"))\n",
    "maxExchangePop = newMEPratio*aDP\n",
    "debug1 = 10 #int(input(\"enter 1 to print out stats for every patched HD, otherwise enter reporting frequency\"))\n",
    "print(\"Let's further tighten the distro with exchanges up to\",int(maxExchangePop)) #1/25/24\n",
    "maxGap = 0.05 * aDP #0.9 * np.median(unitPop) \n",
    "currAvg, currSD = getWeightedAvgAndSD(unitUse,unitPop)\n",
    "\n",
    "attemptedSmallUs, startTime = list(), time.time()\n",
    "print(\"current avg and SD of unit usage are\",r5(currAvg), r5(currSD),\". Now trying to increase up to\",maxNtries,\"units' underusage\" )\n",
    "startTime = time.time()\n",
    "while currSD > maxSD and len(attemptedSmallUs) < maxNtries:\n",
    "    #each round, find the (5) most underused not-yet-tried units. Pick the unit w/ most overuse of it + 1-nbrs\n",
    "    idx = np.argsort(unitUse)\n",
    "    idxNo, nSmallFound, smallUsers = 0,0,list()\n",
    "    while nSmallFound < nSmallUsers:\n",
    "        consideredSmallU = idx[idxNo]\n",
    "        if consideredSmallU not in attemptedSmallUs:\n",
    "            smallUsers.append(consideredSmallU)\n",
    "            nSmallFound +=1\n",
    "        idxNo +=1\n",
    "    UUUclusters = [ [b] + unitNbrs[b] for b in smallUsers ]\n",
    "    smallUnderUse = [np.sum([(unitUse[j] - 1.) for j in UUUclusters[i] ]) for i in range(nSmallUsers) ]\n",
    "    smallI = smallUnderUse.index(np.max(smallUnderUse))\n",
    "    UUU = smallUsers[ smallI ]  #pick the unit that centers cluster with least composite use\n",
    "    attemptedSmallUs.append(UUU)  #so we don't try this unit again in a future loop\n",
    "    UUUc = UUUclusters[smallI]  #the list of this unit and ALL its neighbors (to be curated below ...)\n",
    "    if len(attemptedSmallUs) % debug1 == 0:\n",
    "        print(\"begin usage increase for unit\",UUU,\"with usage\",r5(unitUse[UUU]),\". Sec, total UU units tried =\",\n",
    "              int(time.time()-startTime),len(attemptedSmallUs) )\n",
    "    for u in UUUc.copy():\n",
    "        if unitUse[u] > 1.:\n",
    "            UUUc.remove(u)  #...drop any overused neighbors of the primary UUU from the target sheddable cluster\n",
    "    uuuHDs, uuuDists = list(), list()\n",
    "    for t in popHDlist:  #finding all HDs with at least one cluster member on the boundary\n",
    "        if UUU not in HDunitList[t]:\n",
    "            HDadjoinSet = set( getAdjoiners(HDunitList[t],unitNbrs) )\n",
    "            if len(HDadjoinSet.intersection(UUUc) ) > 0: #the UUU or one of its underused 1-neighbors adjoins this HD\n",
    "                uuuHDs.append(t)  #Note: we'll check later if we can contiguously pick up the UUU's cluster\n",
    "                uuuDists.append( unitCP[UUU].distance(hdCP[t]) / avgDist[t] )\n",
    "        idx0 = np.argsort(uuuDists)\n",
    "    hasCandidates = True\n",
    "    if len(uuuDists) == 0:  #this underused unit is buried inside others; skip it\n",
    "        hasCandidates = False\n",
    "        print(\"   Couldn't find any HDs adjacent to underused unit\",UUU)\n",
    "    nPatchSuccess, nPatchFail, nCouldntStart, idxNo = 0,0,0,-1\n",
    "    while unitUse[UUU] < stopMinUse and idxNo < 0.8*len(uuuHDs) and hasCandidates: #arbitrarily only examine 80% closest of HDs\n",
    "        aDP = countyADP[unitCountyNo[UUU]]\n",
    "        maxGap = 0.05 * aDP   #blocky\n",
    "        \n",
    "        excess, giveUpOnShedding = 99*aDP, True  #default = failed swap\n",
    "        idxNo += 1\n",
    "        if idxNo % 20 == 0 and debug1 == 1:\n",
    "            print(\"try to add unit\",UUU,\"from\",abs(idxNo),\"th HD.  Usage up to\",unitUse[UUU] )\n",
    "        t = uuuHDs[idx0[idxNo]]\n",
    "        trySet = set(HDunitList[t]).union(set(UUUc))\n",
    "        contig,complementContig, __, ___ = enclaveCheck(list(trySet), unitNbrs)\n",
    "        loopUUUc = UUUc.copy()  #default; we will add whole cluster\n",
    "        if not (contig and complementContig): #we can't add whole cluster; neighbors may be enclavy.   Try just adding the UUU\n",
    "            trySet = set(HDunitList[t]).union({UUU})\n",
    "            contig,complementContig, __, ___ = enclaveCheck(list(trySet), unitNbrs)\n",
    "            loopUUUc = [UUU]\n",
    "        if contig and complementContig:  #we can at least add the cluster, let's go for more\n",
    "            HDuuuSet = set(loopUUUc).difference(set(HDunitList[t]))  #the subset of the UUU cluster that adjoins (NOT in) this HD\n",
    "            HDuuuCpop = np.sum([unitPop[u] for u in HDuuuSet])\n",
    "            giveUpOnAdding = False            \n",
    "            addCandidates, addUseDists = list(), list()\n",
    "            uuCandidates = getAdjoiners(trySet, unitNbrs)  #any adjoiner can be picked up, even if far from UUUc\n",
    "            for u in uuCandidates:\n",
    "                if HDuuuCpop + unitPop[u] <= maxExchangePop:\n",
    "                    addCandidates.append(u)  #Below's relative scoring of use and distance is a bit arbitrary\n",
    "                    addUseDists.append((unitUse[uu]-1.) + 0.1*unitCP[uu].distance(hdCP[t]) / avgDist[t])  #bias toward close, underused\n",
    "            if len(addCandidates) == 0:\n",
    "                giveUpOnAdding = True\n",
    "            while HDuuuCpop < maxExchangePop and not giveUpOnAdding:\n",
    "                addNneighbors = [len( set(unitNbrs[addC]).intersection(trySet) ) for addC in addCandidates ]\n",
    "                addScores = addUseDists.copy()\n",
    "                for jjj, u in enumerate(addCandidates):\n",
    "                    if addNneighbors[jjj] == 1:\n",
    "                        addScores[jjj] += 0.4321    #discourage growing fingers\n",
    "                #print(\"HDuuuCpop is now\",HDuuuCpop)\n",
    "                idx, ij, notYetPicked = np.argsort(addScores), 0, True\n",
    "                while ij < 0.5*len(addScores) and notYetPicked:\n",
    "                    listNo = idx[ij]   #work from low to high score\n",
    "                    addU = addCandidates[listNo]\n",
    "                    cContig = wontEnclave(addU, list(trySet), unitNbrs, borderUnits)  #4/20/24 sub this in as faster? vs below line\n",
    "                    #contig,cContig, __, ___ = enclaveCheck(list(trySet.union({addU}) ), unitNbrs)  #4/20/24 this is unnec slow\n",
    "                    if cContig: #contig and cContig:\n",
    "                        notYetPicked = False\n",
    "                        HDuuuCpop += unitPop[addU]\n",
    "                        HDuuuSet.add(addU)\n",
    "                        trySet.add(addU)\n",
    "                        del addUseDists[addCandidates.index(addU)]\n",
    "                        del addCandidates[addCandidates.index(addU)]                        \n",
    "                        for uu in list(set(unitNbrs[addU]).difference(trySet) ): \n",
    "                            if uu not in addCandidates and unitPop[uu] + HDuuuCpop < maxExchangePop and unitUse[uu] < 1.01:\n",
    "                                addCandidates.append(uu)\n",
    "                                addUseDists.append( (unitUse[uu]-1.) + 0.1*unitCP[uu].distance(hdCP[t]) / avgDist[t] )\n",
    "                    else:\n",
    "                        ij +=1\n",
    "                if notYetPicked:\n",
    "                    giveUpOnAdding = True  #all candidates would create a discontig, so can't shed any more units\n",
    "            addSet = HDuuuSet.copy()  #we're done building the list of underused units to add to this HD\n",
    "            trySet = set(HDunitList[t]).union(addSet) \n",
    "            excess = np.sum([unitPop[u] for u in trySet]) - aDP\n",
    "            shedCandidates, shedScores, giveUpOnShedding = list(), list(), False\n",
    "            bdryCandidates = getBdryNonEdgers(trySet, unitNbrs)  #new - any boundary unit can be shed, even if far from OUUc\n",
    "            for u in bdryCandidates:\n",
    "                if unitPop[u] <= excess + maxGap:\n",
    "                    shedCandidates.append(u)\n",
    "                    shedScores.append((unitUse[u] - 1.) * unitCP[u].distance(hdCP[t])/avgDist[t])  #bias toward OVERUSED, far\n",
    "            if len(shedCandidates) == 0:\n",
    "                giveUpOnShedding = True\n",
    "            shedSet = set()\n",
    "            while excess > maxGap and not giveUpOnShedding:\n",
    "                #print(\"excess pop is now\",excess,\"for HD\",t)\n",
    "                idx, ij, notYetPicked = np.argsort(shedScores), 0, True\n",
    "                while ij < len(shedScores) and notYetPicked:\n",
    "                    listNo = idx[-1-ij]   #work from high to low score\n",
    "                    shedU = shedCandidates[listNo]\n",
    "                    if shedScores[listNo] <= 0:  #we're delving into the underused; stop adding to shed list\n",
    "                        break\n",
    "                    if excess - unitPop[shedU] >= -1*maxGap:\n",
    "                        contig,cContig, __, ___ = enclaveCheck(list(trySet.difference({shedU}) ), unitNbrs)\n",
    "                        if contig and cContig:\n",
    "                            notYetPicked = False\n",
    "                            excess -= unitPop[shedU]\n",
    "                            trySet.remove(shedU)\n",
    "                            shedSet.add(shedU)\n",
    "                            del shedScores[shedCandidates.index(shedU)]\n",
    "                            del shedCandidates[shedCandidates.index(shedU)]\n",
    "                            newSheddables = set(unitNbrs[shedU]).intersection(trySet)\n",
    "                            for u in newSheddables:\n",
    "                                if excess - unitPop[u] >= -1*maxGap and u not in shedCandidates:\n",
    "                                    shedCandidates.append(u)  #we'll check enclavity if ever picked\n",
    "                                    shedScores.append((unitUse[u] - 1.) * unitCP[u].distance(hdCP[t])/avgDist[t])\n",
    "                            for kkk, u in enumerate(shedCandidates): #checking if this shed eliminates high-pop future sheds ...\n",
    "                                if excess - unitPop[u] < -1*maxGap:\n",
    "                                    del shedScores[kkk]\n",
    "                                    del shedCandidates[kkk]\n",
    "                    ij +=1\n",
    "                if notYetPicked:\n",
    "                    giveUpOnShedding = True  #all shedcandidates would create a discontig, so can't shed enough units to square pop\n",
    "            legitSwap = False\n",
    "            if abs(excess) <= 2.*maxGap:  #giving ourselves a bit more margin after exchanges\n",
    "                contig,cContig, __, ___ = enclaveCheck(list(trySet), unitNbrs) \n",
    "                if contig and cContig:\n",
    "                    legitSwap = True\n",
    "            if legitSwap:\n",
    "                for u in shedSet:\n",
    "                    unitUse[u] -= HDweight[t] * nDistricts\n",
    "                for u in addSet:\n",
    "                    unitUse[u] += HDweight[t] * nDistricts\n",
    "                HDunitList[t] = list(trySet)\n",
    "                HDvPop[t] = np.sum([ unitPop[u] for u in HDunitList[t] ])\n",
    "                nPatchSuccess +=1\n",
    "                #print(\"we added\",addSet,\"and shed units\",shedSet,\"from HD\",t)\n",
    "            else:\n",
    "                nPatchFail +=1\n",
    "        else:  #adding neither the UUU cluster or just the UUU worked; couldn't even start\n",
    "            nCouldntStart +=1\n",
    "            # end of shed + add patching on this HD\n",
    "            #print(\"shed and patched for HD, OUU\",t,OUU)\n",
    "\n",
    "    print(\"all done trying2increase usage of unit\",UUU,\"final usage =\",r5(unitUse[UUU]),int(time.time()-startTime),\"sec elapsed\",\n",
    "         nPatchSuccess,nPatchFail,\"complete, failed patches, couldn't start=\",nCouldntStart)\n",
    "    currAvg, currSD = getWeightedAvgAndSD(unitUse,unitPop)\n",
    "    print(\"current avg and SD of usage are\",r5(currAvg), r5(currSD) )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 275,
   "id": "cbdcddaf-b75f-44c6-9ee5-b99bf2b5bfc7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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0EMPPaRVq1bpggsu0LPPPqv//M//dDw3MTFRixcv1oIFCzRt2jTdfvvt2rBhgxYtWqRu3brp0Ucf1Y8//qjevXvrnnvuaXNNI0aM0K5du/Twww/rsssuk91uV//+/XXTTTc52qxfv1533XWXxo0bp7i4OD3xxBNatGhRu98Ho5nspwc0dxJlZWWKjIxUaWmpIiIivF0OAD/1TX6prln9kd6599ImfT5a2udvqqqqlJubq379+ik0NNSx3RdmOL3iiiuUnJys9PR0zxXWxTR3viXX/n5z5QMA4HaJUWa9N3cca7vAKcIHAMAjEqPMBAI4RfgAAPilnTt3ersEv8VoFwAAYCjCBwAAMBThAwAAGIrwAQAADEX4AAAAhiJ8AAAAQzHUFgDgGSV5UsUJY45liZairMYcqxOYOnWqSkpK9NZbb7n1dTds2KC0tDSPL1JH+AAAuF9JnrR2lFRbYczxgizSzL0+GUD8cZp3wgcAwP0qTjQEj0nrpJiBnj1W0UFp6/SGY/pg+PBH9PkAAHhOzEApIdmzj3aGm759+za52pCcnKzHH39ckmQymfSXv/xF119/vSwWiwYMGKC3337b0Xbnzp0ymUzavn27RowYodDQUI0ZM0bffPONo82JEyd0yy23KDExURaLRcOHD9drr73m2D916lTt2rVLGRkZMplMMplM+uGHHyRJ+/bt0zXXXKOIiAh1795dl112mb7//vtG9T777LPq3bu3oqOjNXPmTNXW1jr2VVdXa968eUpMTFRYWJhGjx7dZFbXDRs2qE+fPrJYLLr++ut14oQxt8kIHwAANGPx4sW68cYb9dVXX+k3v/mNJk+erJ9++qlRmwceeEArVqzQp59+ql69emnixImOEFBVVaWRI0dq+/bt+uabbzRjxgzddttt2rt3ryQpIyNDY8eO1fTp03X06FEdPXpUVqtV+fn5uvzyyxUSEqL3339fWVlZuuOOO3Tq1CnHcT/44AN9//33+uCDD7Rx40Zt2LBBGzZscOyfNWuWdu/erc2bN+urr77Sb3/7W1199dU6dOiQJGnPnj268847NWvWLGVnZ2v8+PF64oknPPyONuC2CwAAzZg6dapuueUWSdKyZcu0atUq7d27V1dffbWjzWOPPaarrrpKkrRx40adddZZ2rZtm2688UYlJiZq3rx5jrb33nuv3n33Xb3++usa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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "unpatched, patched use avgs are 0.98902 0.9922 and their SDs are 0.08161 0.05079\n",
      "And here is the pop distro\n"
     ]
    },
    {
     "data": {
      "image/png": "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nV+uA0CYI6C0El0fXR3sEprswIycYJcAALAUl3gAAIB1CCgAAMA6BBQAAGAd7kEBmqCl7vWJc1VpV98z670eX6vTJrbZjs29PgBCEQEFsICRdKg62VkHgHBHQAEsUGViNfjThcEuAwCswT0oAADAOgQUAABgHQIKYAG3y68V3SdpRfdJcrv8wS4HAIKOe1AAC0TIqH/8HmcdAMIdIygAAMA6BBQAAGAdAgoAALAOAQUAAFinSQGlsLBQ1157rdq1a6fk5GTdfvvt2r17d0CbG264QS6XK2D5+c9/HtDm4MGDysnJUXx8vJKTkzV58mTV1tZ++94AAIBWoUlP8WzYsEF5eXm69tprVVtbq1/96lcaNmyYdu7cqTZt2jjtxo8fr+nTpzuv4+PjnfW6ujrl5OQoNTVVH374oQ4fPqwxY8YoOjpav/71r5uhS0BoOlrrCXYJAGCNJgWUtWvXBrxevHixkpOTVVxcrCFDhjjb4+PjlZqa2ugxfv/732vnzp169913lZKSoquuukpPPfWUpkyZoieeeEIxMTEX0Q0gtJ02sRqwc0mwywAAa3yre1AqKyslSUlJSQHbX375ZXXo0EF9+vRRQUGBTp065ewrKipS3759lZKS4mzLzs6Wz+fTjh07Gn0fv98vn88XsAAAgNbroidqq6+v10MPPaTrr79effr0cbb/5Cc/UZcuXZSenq6tW7dqypQp2r17t9544w1JUllZWUA4keS8Lisra/S9CgsL9eSTT15sqQAAIMRcdEDJy8vT9u3b9cEHHwRsnzBhgrPet29fpaWlaejQodq3b58uu+yyi3qvgoIC5efnO699Pp8yMjIurnDAQm6XXy92myZJGrv/SfmNO8gVAUBwXVRAmThxolatWqWNGzeqU6dO522bmZkpSdq7d68uu+wypaam6qOPPgpoU15eLknnvG/F7XbL7eYHNlqvCBkNarvdWQeAcNeke1CMMZo4caLefPNNvffee+rWrdsFv6akpESSlJaWJknyer3atm2bjhw54rRZt26dPB6Pevfu3ZRyAABAK9WkEZS8vDwtWbJEK1asULt27Zx7RhISEhQXF6d9+/ZpyZIluvnmm9W+fXtt3bpVkyZN0pAhQ9SvXz9J0rBhw9S7d2/dc889mjlzpsrKyvTYY48pLy+PURIAACCpiSMo8+bNU2VlpW644QalpaU5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677905x1AAh3BBTAAnWK1B+OXxvsMgDAGlziAQAA1mEEBbBAlGp1+yXvS5KW/+0GproHEPb4KQhYINpVq6cznpUkra4YzFT3AMIel3gAAIB1CCgAAMA6BBQAAGAdAgoAALAOAQUAAFiHgAIAAKzDs4yABapNtH7xl0eddQAIdwQUwAJ1itTblYNb5NhdH13dIsdtSQdm5AS7BABB1uRLPBs3btStt96q9PR0uVwuLV++PGD/vffeK5fLFbAMHz48oM2xY8c0evRoeTweJSYmaty4cTpx4sS36ggAAGg9mhxQTp48qf79+2vu3LnnbDN8+HAdPnzYWV555ZWA/aNHj9aOHTu0bt06rVq1Shs3btSECROaXj3QSkSqTjcnfKCbEz5QpOqCXQ4ABF2TL/GMGDFCI0aMOG8bt9ut1NTURvft2rVLa9eu1ccff6xrrrlGkjRnzhzdfPPNevrpp5Went7UkoCQF+Oq0fNdZkiSem17XadNZJArAoDgapGneN5//30lJyerR48euv/++3X06FFnX1FRkRITE51wIklZWVmKiIjQ5s2bGz2e3++Xz+cLWAAAQOvV7AFl+PDheumll7R+/Xr927/9mzZs2KARI0aoru7MsHVZWZmSk5MDviYqKkpJSUkqKytr9JiFhYVKSEhwloyMjOYuGwAAWKTZn+K5++67nfW+ffuqX79+uuyyy/T+++9r6NChF3XMgoIC5efnO699Ph8hBQCAVqzFJ2q79NJL1aFDB+3du1eSlJqaqiNHjgS0qa2t1bFjx85534rb7ZbH4wlYAABA69XiAeXQoUM6evSo0tLSJEler1cVFRUqLi522rz33nuqr69XZmZmS5cDAABCQJMv8Zw4ccIZDZGk/fv3q6SkRElJSUpKStKTTz6p3Nxcpaamat++fXrkkUfUvXt3ZWdnS5J69eql4cOHa/z48Zo/f75qamo0ceJE3X333TzBAwAAJF1EQPnkk0904403Oq8b7g0ZO3as5s2bp61bt+rFF19URUWF0tPTNWzYMD311FNyu93O17z88suaOHGihg4dqoiICOXm5uq5555rhu4AoanGROmXnz3krANAuHMZY0ywi2gqn8+nhIQEVVZWtsj9KKE4NTjQmjDVPdA6NeX3N3/NGAAAWIexZMACkarTkHZ/kiRtPP591YmZZAGENwIKYIEYV40WdXtS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mZkp6cynTenc/WnYd742tvf59ddf16lTpzRmzJgLtg2F89zwA/wvf/mL1q1bF/AJMzU1VUeOHAloX1tbq2PHjl3wPDbsO1+br+7/6tc11qY5na/PDUpLS3XjjTfquuuu029/+9sLHjMzM9P5/y+FZp+/KjMzU7W1tTpw4IBTb2s8z5K0aNEitW/f/huFDtvPc5s2bdS9e3cNGjRICxYsUFRUlBYsWODU0hq/n7+tVh1QfD6fhg0bppiYGK1cuVKxsbEX/JqSkhJdcsklzicTr9er9evXB7RZt26dvF6vJCkmJkYDBgwIaFNfX6/169c7bYKp4bHctLQ0SWf6s23btoBvhoYfEL1793bahGKfFyxYoJEjR6pjx44XbGv7eW74Ab5nzx69++67at++fcB+r9eriooKFRcXO9vee+891dfXO6HU6/Vq48aNqqmpCehTjx49dMkllzhtztfvbt26KTU1NaCNz+fT5s2bm73fF+qzdGbk5IYbbtCAAQO0aNEiRURc+EdYSUmJ8/9fCr0+f11JSYkiIiKcT96t8TxLZx6HXbRokcaMGXPBD5aS3ee5MfX19c4HpNb4/dwsgniD7nkdP37cbNmyxWzZssVIMs8884zZsmWLc6f30aNHzZYtW8zq1auNJLN06VKzZcsWc/jwYWPMmbukMzMzTd++fc3evXsDHkWrra01xhizcuVK88ILL5ht27aZPXv2mOeff97Ex8ebqVOnOnU0PH46efJks2vXLjN37txGHz91u91m8eLFZufOnWbChAkmMTEx4EmZ76LPe/fuNdOnTzeffPKJ2b9/v1mxYoW59NJLzZAhQ5z3aHjMeNiwYaakpMSsXbvWdOzYsdHHjEOhzw327NljXC6XWbNmzVnvYdt5vlC/q6urzciRI02nTp1MSUlJwP/dr97BP3z4cHP11VebzZs3mw8++MBcfvnlAY8lVlRUmJSUFHPPPfeY7du3m6VLl5r4+PizHkuMiooyTz/9tNm1a5eZNm1ao48lJiYmmhUrVpitW7ea22677aIeS/y2fT506JDp3r27GTp0qDl06FBAmwaLFy82S5YsMbt27TK7du0y//qv/2oiIiLMwoULQ7LPH374oZk9e7YpKSkx+/btM//1X/9lOnbsaMaMGeO8R2s7zw3effddI8ns2rXrrPcIpfN84sQJU1BQYIqKisyBAwfMJ598Yu677z7jdrvN9u3bnWOE2vfzd8HagPKHP/zBSDprGTt2rDHGmEWLFjW6f9q0aef9eklm//79xpgzj3FdddVVpm3btqZNmzamf//+Zv78+aauru6sWq666ioTExNjLr30UrNo0aKz6p0zZ47p3LmziYmJMQMHDjSbNm36zvt88OBBM2TIEJOUlGTcbrfp3r27mTx5csA8KMYYc+DAATNixAgTFxdnOnToYB5++OGAR69Dqc8NCgoKTEZGxlnnzhj7zvOF+t3wCGVjyx/+8AfnGEePHjWjRo0ybdu2NR6Px9x3330Bc78YY8yf//xnM3jwYON2u833vvc9M2PGjLNqee2118wVV1xhYmJizJVXXmlWr14dsL++vt48/vjjJiUlxbjdbjN06FCze/fu77zP5/q/8NXPWYsXLza9evUy8fHxxuPxmIEDB5ply5aFbJ+Li4tNZmamSUhIMLGxsaZXr17m17/+tamqqgp4n9Z0nhuMGjXKXHfddY2+Ryid59OnT5u/+7u/M+np6SYmJsakpaWZkSNHmo8++ijgGKH2/fxdcBnzlWctAQAALNCq70EBAAChiYACAACsQ0ABAADWIaAAAADrEFAAAIB1CCgAAMA6BBQAAGAdAgoAALAOAQUAAFiHgAIAAKxDQAEAANYhoAAAAOv8fwy/3R3Q2N0wAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "checking contiguity of final HDs\n",
      "working on HD 1600 out of 8941\n",
      "working on HD 7200 out of 8941\n",
      "all done checking HD and complement contiguity for all 8941 HDs\n"
     ]
    }
   ],
   "source": [
    "patchedUse, unpUse = [0.]*nUnits, [0.]*nUnits\n",
    "for t in popHDlist:\n",
    "    for u in HDunitList[t]:\n",
    "        patchedUse[u] += HDweight[t] * nDistricts\n",
    "    for u in ready2patchList[t]:\n",
    "        unpUse[u] += HDweight[t] * nDistricts\n",
    "plt.hist(patchedUse,bins=50, label=\"patched\",histtype=\"step\")\n",
    "plt.hist(unpUse, bins=50, label=\"unpatched\",histtype=\"step\")\n",
    "plt.legend()\n",
    "plt.show()\n",
    "patchedAvg, patchedSD = getWeightedAvgAndSD(patchedUse,unitPop)\n",
    "unpatchedAvg, unpatchedSD = getWeightedAvgAndSD(unpUse,unitPop)\n",
    "print(\"unpatched, patched use avgs are\",r5(unpatchedAvg), r5(patchedAvg),\"and their SDs are\",r5(unpatchedSD), r5(patchedSD) )\n",
    "print(\"And here is the pop distro\")\n",
    "plt.hist([HDvPop[t] for t in popHDlist])\n",
    "plt.axvline(aDP, ls=\"--\",color=\"orange\")\n",
    "plt.show()\n",
    "print(\"checking contiguity of final HDs\")\n",
    "for t in popHDlist:\n",
    "    if t%800 == 0:\n",
    "        print(\"working on HD\",t,\"out of\",nHDs)\n",
    "    unbroken, noEnclave, sList, eList = enclaveCheck(HDunitList[t], unitNbrs)  #these HDunitLists now appear to be sets\n",
    "    if not unbroken or not noEnclave:\n",
    "        print(\"uh-oh, HD\",t,\"has contiguity, complement-contiguity of\",unbroken, noEnclave)\n",
    "print(\"all done checking HD and complement contiguity for all\",nHDs,\"HDs\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 276,
   "id": "de84dc66-d9ec-405e-8fc2-e18000061eed",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "default use threshold for moving on to next overused unit is 1.02\n"
     ]
    },
    {
     "name": "stdin",
     "output_type": "stream",
     "text": [
      "enter updated stopMaxUse value 1.02\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "there are currently 289 units out of 904 with usage above 1.02\n",
      "maxExchangePop is currently 0.05 fraction of avgDistrictPop\n",
      "this block reduces overuse, with exchanges up to 5963\n",
      "current avg and SD of unit usage are 0.9922 0.05079 . Now trying to reduce up to 289 units' overusage\n",
      "starting to reduce usage for unit 522 with usage 1.09405 . Total units tried = 1\n",
      "try to drop unit 522 from 8 th HD.  usage down to 1.050687675771465\n",
      "all done trying to reduce usage of unit 522 final usage = 1.01069 0 sec elapsed 8 0 successful, failed patches, couldn't start= 4\n",
      "current avg and SD of usage are 0.99205 0.05046\n",
      "starting to reduce usage for unit 274 with usage 1.08682 . Total units tried = 2\n",
      "all done trying to reduce usage of unit 274 final usage = 1.01732 0 sec elapsed 4 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.99196 0.05017\n",
      "starting to reduce usage for unit 367 with usage 1.08518 . Total units tried = 3\n",
      "try to drop unit 367 from 7 th HD.  usage down to 1.0429735603452734\n",
      "all done trying to reduce usage of unit 367 final usage = 1.01149 0 sec elapsed 7 0 successful, failed patches, couldn't start= 2\n",
      "current avg and SD of usage are 0.99186 0.0499\n",
      "starting to reduce usage for unit 667 with usage 1.09005 . Total units tried = 4\n",
      "try to drop unit 667 from 5 th HD.  usage down to 1.0409947220402938\n",
      "all done trying to reduce usage of unit 667 final usage = 1.01752 0 sec elapsed 7 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.99183 0.04965\n",
      "starting to reduce usage for unit 164 with usage 1.08222 . Total units tried = 5\n",
      "all done trying to reduce usage of unit 164 final usage = 1.01645 0 sec elapsed 4 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.99176 0.04944\n",
      "starting to reduce usage for unit 32 with usage 1.07599 . Total units tried = 6\n",
      "all done trying to reduce usage of unit 32 final usage = 1.00441 0 sec elapsed 5 0 successful, failed patches, couldn't start= 1\n",
      "current avg and SD of usage are 0.99174 0.04913\n",
      "starting to reduce usage for unit 640 with usage 1.12667 . Total units tried = 7\n",
      "try to drop unit 640 from 5 th HD.  usage down to 1.0788274272609184\n",
      "all done trying to reduce usage of unit 640 final usage = 1.00577 0 sec elapsed 9 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.99163 0.04861\n",
      "starting to reduce usage for unit 516 with usage 1.08328 . Total units tried = 8\n",
      "try to drop unit 516 from 7 th HD.  usage down to 1.057219519159512\n",
      "try to drop unit 516 from 14 th HD.  usage down to 1.0237050415959397\n",
      "all done trying to reduce usage of unit 516 final usage = 1.00273 0 sec elapsed 5 0 successful, failed patches, couldn't start= 12\n",
      "current avg and SD of usage are 0.99142 0.04846\n",
      "starting to reduce usage for unit 42 with usage 1.0688 . Total units tried = 9\n",
      "all done trying to reduce usage of unit 42 final usage = 1.01854 0 sec elapsed 4 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.99124 0.048\n",
      "starting to reduce usage for unit 194 with usage 1.06635 . Total units tried = 10\n",
      "try to drop unit 194 from 6 th HD.  usage down to 1.0205011581486918\n",
      "all done trying to reduce usage of unit 194 final usage = 1.00479 0 sec elapsed 4 0 successful, failed patches, couldn't start= 2\n",
      "current avg and SD of usage are 0.99115 0.0479\n",
      "starting to reduce usage for unit 49 with usage 1.13715 . Total units tried = 11\n",
      "try to drop unit 49 from 8 th HD.  usage down to 1.0251137061520261\n",
      "all done trying to reduce usage of unit 49 final usage = 1.01267 1 sec elapsed 7 2 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.99092 0.04709\n",
      "starting to reduce usage for unit 44 with usage 1.06572 . Total units tried = 12\n",
      "all done trying to reduce usage of unit 44 final usage = 1.00899 1 sec elapsed 5 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.99099 0.04652\n",
      "starting to reduce usage for unit 454 with usage 1.06482 . Total units tried = 13\n",
      "all done trying to reduce usage of unit 454 final usage = 1.01256 1 sec elapsed 4 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.9909 0.04636\n",
      "starting to reduce usage for unit 43 with usage 1.07562 . Total units tried = 14\n",
      "all done trying to reduce usage of unit 43 final usage = 0.992 1 sec elapsed 4 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.9909 0.04623\n",
      "starting to reduce usage for unit 833 with usage 1.05972 . Total units tried = 15\n",
      "try to drop unit 833 from 6 th HD.  usage down to 1.0312430739526193\n",
      "all done trying to reduce usage of unit 833 final usage = 1.01928 1 sec elapsed 3 0 successful, failed patches, couldn't start= 6\n",
      "current avg and SD of usage are 0.9908 0.04611\n",
      "starting to reduce usage for unit 397 with usage 1.05808 . Total units tried = 16\n",
      "all done trying to reduce usage of unit 397 final usage = 1.01985 1 sec elapsed 3 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.99072 0.04601\n",
      "starting to reduce usage for unit 261 with usage 1.05799 . Total units tried = 17\n",
      "all done trying to reduce usage of unit 261 final usage = 1.00768 1 sec elapsed 4 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.99069 0.04587\n",
      "starting to reduce usage for unit 775 with usage 1.05712 . Total units tried = 18\n",
      "all done trying to reduce usage of unit 775 final usage = 1.01128 1 sec elapsed 4 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.99063 0.04579\n",
      "starting to reduce usage for unit 834 with usage 1.05608 . Total units tried = 19\n",
      "try to drop unit 834 from 5 th HD.  usage down to 1.021734588199031\n",
      "all done trying to reduce usage of unit 834 final usage = 1.01057 1 sec elapsed 3 0 successful, failed patches, couldn't start= 3\n",
      "current avg and SD of usage are 0.99059 0.04569\n",
      "starting to reduce usage for unit 314 with usage 1.05587 . Total units tried = 20\n",
      "all done trying to reduce usage of unit 314 final usage = 1.00795 1 sec elapsed 3 0 successful, failed patches, couldn't start= 1\n",
      "current avg and SD of usage are 0.99046 0.04559\n",
      "starting to reduce usage for unit 379 with usage 1.05408 . Total units tried = 21\n",
      "all done trying to reduce usage of unit 379 final usage = 1.00647 1 sec elapsed 3 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.99045 0.04552\n",
      "starting to reduce usage for unit 419 with usage 1.05325 . Total units tried = 22\n",
      "all done trying to reduce usage of unit 419 final usage = 1.00857 1 sec elapsed 4 0 successful, failed patches, couldn't start= 1\n",
      "current avg and SD of usage are 0.99041 0.04547\n",
      "starting to reduce usage for unit 276 with usage 1.05266 . Total units tried = 23\n",
      "all done trying to reduce usage of unit 276 final usage = 1.01954 1 sec elapsed 2 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.99042 0.04542\n",
      "starting to reduce usage for unit 404 with usage 1.05142 . Total units tried = 24\n",
      "all done trying to reduce usage of unit 404 final usage = 1.0099 1 sec elapsed 3 0 successful, failed patches, couldn't start= 2\n",
      "current avg and SD of usage are 0.99041 0.04532\n",
      "starting to reduce usage for unit 70 with usage 1.0507 . Total units tried = 25\n",
      "all done trying to reduce usage of unit 70 final usage = 1.0102 2 sec elapsed 3 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.99025 0.04511\n",
      "starting to reduce usage for unit 116 with usage 1.06982 . Total units tried = 26\n",
      "all done trying to reduce usage of unit 116 final usage = 1.01949 2 sec elapsed 4 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.99022 0.04488\n",
      "starting to reduce usage for unit 233 with usage 1.04897 . Total units tried = 27\n",
      "all done trying to reduce usage of unit 233 final usage = 1.01378 2 sec elapsed 4 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.99021 0.04485\n",
      "starting to reduce usage for unit 82 with usage 1.06582 . Total units tried = 28\n",
      "all done trying to reduce usage of unit 82 final usage = 1.01872 2 sec elapsed 5 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.99014 0.04461\n",
      "starting to reduce usage for unit 560 with usage 1.04766 . Total units tried = 29\n",
      "all done trying to reduce usage of unit 560 final usage = 1.01363 2 sec elapsed 2 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.99013 0.04452\n",
      "starting to reduce usage for unit 275 with usage 1.04739 . Total units tried = 30\n",
      "all done trying to reduce usage of unit 275 final usage = 1.0018 2 sec elapsed 2 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.99007 0.04446\n",
      "starting to reduce usage for unit 205 with usage 1.04716 . Total units tried = 31\n",
      "try to drop unit 205 from 6 th HD.  usage down to 1.0201977761618775\n",
      "all done trying to reduce usage of unit 205 final usage = 1.00667 2 sec elapsed 3 0 successful, failed patches, couldn't start= 3\n",
      "current avg and SD of usage are 0.99002 0.04435\n",
      "starting to reduce usage for unit 206 with usage 1.04661 . Total units tried = 32\n",
      "all done trying to reduce usage of unit 206 final usage = 1.01994 2 sec elapsed 4 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98996 0.04428\n",
      "starting to reduce usage for unit 124 with usage 1.0458 . Total units tried = 33\n",
      "all done trying to reduce usage of unit 124 final usage = 1.0115 2 sec elapsed 3 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98994 0.04416\n",
      "starting to reduce usage for unit 650 with usage 1.04561 . Total units tried = 34\n",
      "all done trying to reduce usage of unit 650 final usage = 1.01743 2 sec elapsed 2 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98989 0.04408\n",
      "starting to reduce usage for unit 199 with usage 1.04481 . Total units tried = 35\n",
      "all done trying to reduce usage of unit 199 final usage = 1.01486 2 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98987 0.04407\n",
      "starting to reduce usage for unit 506 with usage 1.04437 . Total units tried = 36\n",
      "all done trying to reduce usage of unit 506 final usage = 1.01763 2 sec elapsed 2 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98983 0.04403\n",
      "starting to reduce usage for unit 6 with usage 1.04816 . Total units tried = 37\n",
      "all done trying to reduce usage of unit 6 final usage = 1.01104 2 sec elapsed 3 0 successful, failed patches, couldn't start= 1\n",
      "current avg and SD of usage are 0.98973 0.0434\n",
      "starting to reduce usage for unit 398 with usage 1.04324 . Total units tried = 38\n",
      "all done trying to reduce usage of unit 398 final usage = 1.01031 2 sec elapsed 2 0 successful, failed patches, couldn't start= 1\n",
      "current avg and SD of usage are 0.9897 0.04336\n",
      "starting to reduce usage for unit 28 with usage 1.04322 . Total units tried = 39\n",
      "all done trying to reduce usage of unit 28 final usage = 1.01164 2 sec elapsed 2 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98959 0.04315\n",
      "starting to reduce usage for unit 329 with usage 1.04196 . Total units tried = 40\n",
      "all done trying to reduce usage of unit 329 final usage = 1.01142 2 sec elapsed 3 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98959 0.0431\n",
      "starting to reduce usage for unit 230 with usage 1.04166 . Total units tried = 41\n",
      "all done trying to reduce usage of unit 230 final usage = 1.01078 3 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98958 0.04308\n",
      "starting to reduce usage for unit 316 with usage 1.04026 . Total units tried = 42\n",
      "all done trying to reduce usage of unit 316 final usage = 1.01446 3 sec elapsed 2 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98956 0.043\n",
      "starting to reduce usage for unit 15 with usage 1.03998 . Total units tried = 43\n",
      "all done trying to reduce usage of unit 15 final usage = 1.01999 3 sec elapsed 3 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98956 0.04289\n",
      "starting to reduce usage for unit 695 with usage 1.03978 . Total units tried = 44\n",
      "all done trying to reduce usage of unit 695 final usage = 1.01545 3 sec elapsed 2 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98953 0.04285\n",
      "starting to reduce usage for unit 400 with usage 1.03953 . Total units tried = 45\n",
      "all done trying to reduce usage of unit 400 final usage = 1.01713 3 sec elapsed 2 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98951 0.04282\n",
      "starting to reduce usage for unit 150 with usage 1.03923 . Total units tried = 46\n",
      "all done trying to reduce usage of unit 150 final usage = 1.01587 3 sec elapsed 2 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98948 0.04278\n",
      "starting to reduce usage for unit 509 with usage 1.03895 . Total units tried = 47\n",
      "all done trying to reduce usage of unit 509 final usage = 1.01849 3 sec elapsed 2 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98945 0.04275\n",
      "starting to reduce usage for unit 57 with usage 1.03875 . Total units tried = 48\n",
      "all done trying to reduce usage of unit 57 final usage = 1.01684 3 sec elapsed 2 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98945 0.04263\n",
      "starting to reduce usage for unit 345 with usage 1.03871 . Total units tried = 49\n",
      "all done trying to reduce usage of unit 345 final usage = 1.00904 3 sec elapsed 3 0 successful, failed patches, couldn't start= 2\n",
      "current avg and SD of usage are 0.98941 0.04257\n",
      "starting to reduce usage for unit 214 with usage 1.03762 . Total units tried = 50\n",
      "all done trying to reduce usage of unit 214 final usage = 1.01702 3 sec elapsed 2 0 successful, failed patches, couldn't start= 2\n",
      "current avg and SD of usage are 0.98945 0.04211\n",
      "starting to reduce usage for unit 258 with usage 1.03761 . Total units tried = 51\n",
      "all done trying to reduce usage of unit 258 final usage = 1.00672 3 sec elapsed 1 0 successful, failed patches, couldn't start= 1\n",
      "current avg and SD of usage are 0.98945 0.0421\n",
      "starting to reduce usage for unit 787 with usage 1.03737 . Total units tried = 52\n",
      "all done trying to reduce usage of unit 787 final usage = 1.01086 3 sec elapsed 2 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98939 0.04203\n",
      "starting to reduce usage for unit 271 with usage 1.03672 . Total units tried = 53\n",
      "all done trying to reduce usage of unit 271 final usage = 1.01244 3 sec elapsed 2 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98933 0.042\n",
      "starting to reduce usage for unit 141 with usage 1.03656 . Total units tried = 54\n",
      "all done trying to reduce usage of unit 141 final usage = 1.01105 3 sec elapsed 2 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98933 0.04189\n",
      "starting to reduce usage for unit 898 with usage 1.03499 . Total units tried = 55\n",
      "all done trying to reduce usage of unit 898 final usage = 1.01049 3 sec elapsed 2 0 successful, failed patches, couldn't start= 1\n",
      "current avg and SD of usage are 0.98926 0.04185\n",
      "starting to reduce usage for unit 148 with usage 1.0345 . Total units tried = 56\n",
      "all done trying to reduce usage of unit 148 final usage = 1.00291 3 sec elapsed 2 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98921 0.04181\n",
      "starting to reduce usage for unit 459 with usage 1.03431 . Total units tried = 57\n",
      "all done trying to reduce usage of unit 459 final usage = 1.01899 4 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98921 0.0418\n",
      "starting to reduce usage for unit 374 with usage 1.03387 . Total units tried = 58\n",
      "all done trying to reduce usage of unit 374 final usage = 1.0126 4 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98917 0.04179\n",
      "starting to reduce usage for unit 280 with usage 1.03325 . Total units tried = 59\n",
      "all done trying to reduce usage of unit 280 final usage = 1.01421 4 sec elapsed 2 0 successful, failed patches, couldn't start= 1\n",
      "current avg and SD of usage are 0.98916 0.04171\n",
      "starting to reduce usage for unit 330 with usage 1.03325 . Total units tried = 60\n",
      "all done trying to reduce usage of unit 330 final usage = 1.00332 4 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98915 0.0417\n",
      "starting to reduce usage for unit 424 with usage 1.03696 . Total units tried = 61\n",
      "all done trying to reduce usage of unit 424 final usage = 1.00697 4 sec elapsed 2 0 successful, failed patches, couldn't start= 1\n",
      "current avg and SD of usage are 0.98912 0.04166\n",
      "starting to reduce usage for unit 207 with usage 1.03305 . Total units tried = 62\n",
      "all done trying to reduce usage of unit 207 final usage = 1.01456 4 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98911 0.04166\n",
      "starting to reduce usage for unit 378 with usage 1.03298 . Total units tried = 63\n",
      "all done trying to reduce usage of unit 378 final usage = 1.01264 4 sec elapsed 2 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98904 0.04158\n",
      "starting to reduce usage for unit 387 with usage 1.03289 . Total units tried = 64\n",
      "all done trying to reduce usage of unit 387 final usage = 1.01373 4 sec elapsed 2 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98904 0.04154\n",
      "starting to reduce usage for unit 186 with usage 1.03244 . Total units tried = 65\n",
      "all done trying to reduce usage of unit 186 final usage = 1.0081 4 sec elapsed 2 0 successful, failed patches, couldn't start= 1\n",
      "current avg and SD of usage are 0.98903 0.0415\n",
      "starting to reduce usage for unit 311 with usage 1.03224 . Total units tried = 66\n",
      "all done trying to reduce usage of unit 311 final usage = 1.00135 4 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98904 0.0415\n",
      "starting to reduce usage for unit 266 with usage 1.03191 . Total units tried = 67\n",
      "all done trying to reduce usage of unit 266 final usage = 1.00103 4 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98904 0.04147\n",
      "starting to reduce usage for unit 80 with usage 1.03181 . Total units tried = 68\n",
      "try to drop unit 80 from 6 th HD.  usage down to 1.0318105644349598\n",
      "all done trying to reduce usage of unit 80 final usage = 1.01418 4 sec elapsed 3 0 successful, failed patches, couldn't start= 5\n",
      "current avg and SD of usage are 0.98906 0.04145\n",
      "starting to reduce usage for unit 140 with usage 1.03173 . Total units tried = 69\n",
      "all done trying to reduce usage of unit 140 final usage = 1.01742 4 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98908 0.04144\n",
      "starting to reduce usage for unit 282 with usage 1.03078 . Total units tried = 70\n",
      "all done trying to reduce usage of unit 282 final usage = 1.01662 4 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98908 0.04143\n",
      "starting to reduce usage for unit 125 with usage 1.06097 . Total units tried = 71\n",
      "all done trying to reduce usage of unit 125 final usage = 1.01351 4 sec elapsed 4 0 successful, failed patches, couldn't start= 1\n",
      "current avg and SD of usage are 0.98907 0.04126\n",
      "starting to reduce usage for unit 732 with usage 1.03047 . Total units tried = 72\n",
      "all done trying to reduce usage of unit 732 final usage = 1.01985 4 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98904 0.04124\n",
      "starting to reduce usage for unit 247 with usage 1.0303 . Total units tried = 73\n",
      "all done trying to reduce usage of unit 247 final usage = 1.00602 4 sec elapsed 2 0 successful, failed patches, couldn't start= 2\n",
      "current avg and SD of usage are 0.98901 0.04118\n",
      "starting to reduce usage for unit 693 with usage 1.03001 . Total units tried = 74\n",
      "all done trying to reduce usage of unit 693 final usage = 1.0196 5 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.989 0.04116\n",
      "starting to reduce usage for unit 200 with usage 1.02894 . Total units tried = 75\n",
      "all done trying to reduce usage of unit 200 final usage = 0.99899 5 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98902 0.04117\n",
      "starting to reduce usage for unit 310 with usage 1.03377 . Total units tried = 76\n",
      "all done trying to reduce usage of unit 310 final usage = 1.00383 5 sec elapsed 1 0 successful, failed patches, couldn't start= 1\n",
      "current avg and SD of usage are 0.98899 0.04116\n",
      "starting to reduce usage for unit 244 with usage 1.03463 . Total units tried = 77\n",
      "all done trying to reduce usage of unit 244 final usage = 1.00468 5 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98902 0.04117\n",
      "starting to reduce usage for unit 441 with usage 1.02864 . Total units tried = 78\n",
      "all done trying to reduce usage of unit 441 final usage = 0.99872 5 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98901 0.04119\n",
      "starting to reduce usage for unit 446 with usage 1.0394 . Total units tried = 79\n",
      "all done trying to reduce usage of unit 446 final usage = 1.01819 5 sec elapsed 2 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98899 0.04117\n",
      "starting to reduce usage for unit 763 with usage 1.02997 . Total units tried = 80\n",
      "all done trying to reduce usage of unit 763 final usage = 1.01666 5 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98898 0.04115\n",
      "starting to reduce usage for unit 478 with usage 1.02859 . Total units tried = 81\n",
      "all done trying to reduce usage of unit 478 final usage = 1.01862 5 sec elapsed 1 0 successful, failed patches, couldn't start= 1\n",
      "current avg and SD of usage are 0.98898 0.04112\n",
      "starting to reduce usage for unit 780 with usage 1.02826 . Total units tried = 82\n",
      "all done trying to reduce usage of unit 780 final usage = 1.0168 5 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98899 0.04089\n",
      "starting to reduce usage for unit 250 with usage 1.02813 . Total units tried = 83\n",
      "all done trying to reduce usage of unit 250 final usage = 1.01298 5 sec elapsed 1 0 successful, failed patches, couldn't start= 1\n",
      "current avg and SD of usage are 0.98896 0.04087\n",
      "starting to reduce usage for unit 155 with usage 1.02798 . Total units tried = 84\n",
      "all done trying to reduce usage of unit 155 final usage = 1.00692 5 sec elapsed 2 0 successful, failed patches, couldn't start= 2\n",
      "current avg and SD of usage are 0.98894 0.04085\n",
      "starting to reduce usage for unit 718 with usage 1.0276 . Total units tried = 85\n",
      "all done trying to reduce usage of unit 718 final usage = 1.01311 5 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98891 0.04083\n",
      "starting to reduce usage for unit 243 with usage 1.02756 . Total units tried = 86\n",
      "all done trying to reduce usage of unit 243 final usage = 1.01211 5 sec elapsed 1 0 successful, failed patches, couldn't start= 1\n",
      "current avg and SD of usage are 0.9889 0.04084\n",
      "starting to reduce usage for unit 572 with usage 1.02734 . Total units tried = 87\n",
      "all done trying to reduce usage of unit 572 final usage = 1.01753 5 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98889 0.04078\n",
      "starting to reduce usage for unit 292 with usage 1.02734 . Total units tried = 88\n",
      "all done trying to reduce usage of unit 292 final usage = 1.01514 5 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98889 0.04078\n",
      "starting to reduce usage for unit 580 with usage 1.02729 . Total units tried = 89\n",
      "all done trying to reduce usage of unit 580 final usage = 1.0169 5 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98887 0.04076\n",
      "starting to reduce usage for unit 416 with usage 1.0271 . Total units tried = 90\n",
      "all done trying to reduce usage of unit 416 final usage = 1.01722 5 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98887 0.04075\n",
      "starting to reduce usage for unit 720 with usage 1.02689 . Total units tried = 91\n",
      "all done trying to reduce usage of unit 720 final usage = 1.01234 6 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98887 0.04072\n",
      "starting to reduce usage for unit 236 with usage 1.02631 . Total units tried = 92\n",
      "all done trying to reduce usage of unit 236 final usage = 1.00942 6 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98895 0.04077\n",
      "starting to reduce usage for unit 149 with usage 1.02683 . Total units tried = 93\n",
      "all done trying to reduce usage of unit 149 final usage = 1.01295 6 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98899 0.04076\n",
      "starting to reduce usage for unit 31 with usage 1.02624 . Total units tried = 94\n",
      "all done trying to reduce usage of unit 31 final usage = 1.01614 6 sec elapsed 1 0 successful, failed patches, couldn't start= 1\n",
      "current avg and SD of usage are 0.989 0.04075\n",
      "starting to reduce usage for unit 649 with usage 1.02623 . Total units tried = 95\n",
      "all done trying to reduce usage of unit 649 final usage = 1.01262 6 sec elapsed 1 0 successful, failed patches, couldn't start= 1\n",
      "current avg and SD of usage are 0.98897 0.04074\n",
      "starting to reduce usage for unit 234 with usage 1.02556 . Total units tried = 96\n",
      "all done trying to reduce usage of unit 234 final usage = 1.01595 6 sec elapsed 1 0 successful, failed patches, couldn't start= 1\n",
      "current avg and SD of usage are 0.98896 0.04073\n",
      "starting to reduce usage for unit 59 with usage 1.02552 . Total units tried = 97\n",
      "all done trying to reduce usage of unit 59 final usage = 1.00745 6 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98898 0.04059\n",
      "starting to reduce usage for unit 27 with usage 1.02804 . Total units tried = 98\n",
      "all done trying to reduce usage of unit 27 final usage = 1.01225 6 sec elapsed 2 0 successful, failed patches, couldn't start= 2\n",
      "current avg and SD of usage are 0.98899 0.04036\n",
      "starting to reduce usage for unit 253 with usage 1.02522 . Total units tried = 99\n",
      "all done trying to reduce usage of unit 253 final usage = 1.00699 6 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98894 0.04034\n",
      "starting to reduce usage for unit 23 with usage 1.0252 . Total units tried = 100\n",
      "all done trying to reduce usage of unit 23 final usage = 1.01132 6 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98888 0.0403\n",
      "starting to reduce usage for unit 792 with usage 1.02516 . Total units tried = 101\n",
      "all done trying to reduce usage of unit 792 final usage = 1.01431 6 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98888 0.04029\n",
      "starting to reduce usage for unit 351 with usage 1.02508 . Total units tried = 102\n",
      "all done trying to reduce usage of unit 351 final usage = 1.01301 6 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98888 0.04028\n",
      "starting to reduce usage for unit 267 with usage 1.02504 . Total units tried = 103\n",
      "all done trying to reduce usage of unit 267 final usage = 1.00627 6 sec elapsed 1 0 successful, failed patches, couldn't start= 1\n",
      "current avg and SD of usage are 0.98886 0.04028\n",
      "starting to reduce usage for unit 212 with usage 1.02853 . Total units tried = 104\n",
      "all done trying to reduce usage of unit 212 final usage = 1.01612 6 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98887 0.04027\n",
      "starting to reduce usage for unit 226 with usage 1.02497 . Total units tried = 105\n",
      "all done trying to reduce usage of unit 226 final usage = 1.0162 6 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98885 0.04026\n",
      "starting to reduce usage for unit 78 with usage 1.05068 . Total units tried = 106\n",
      "all done trying to reduce usage of unit 78 final usage = 1.01548 6 sec elapsed 2 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98874 0.04014\n",
      "starting to reduce usage for unit 303 with usage 1.02471 . Total units tried = 107\n",
      "all done trying to reduce usage of unit 303 final usage = 0.99476 6 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98872 0.04015\n",
      "starting to reduce usage for unit 285 with usage 1.03398 . Total units tried = 108\n",
      "all done trying to reduce usage of unit 285 final usage = 1.01998 6 sec elapsed 1 0 successful, failed patches, couldn't start= 2\n",
      "current avg and SD of usage are 0.98868 0.04013\n",
      "starting to reduce usage for unit 146 with usage 1.03722 . Total units tried = 109\n",
      "all done trying to reduce usage of unit 146 final usage = 1.00928 6 sec elapsed 2 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98869 0.04012\n",
      "starting to reduce usage for unit 152 with usage 1.02569 . Total units tried = 110\n",
      "all done trying to reduce usage of unit 152 final usage = 1.01043 7 sec elapsed 1 0 successful, failed patches, couldn't start= 2\n",
      "current avg and SD of usage are 0.98867 0.04009\n",
      "starting to reduce usage for unit 417 with usage 1.02459 . Total units tried = 111\n",
      "all done trying to reduce usage of unit 417 final usage = 1.00797 7 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98867 0.04009\n",
      "starting to reduce usage for unit 527 with usage 1.0244 . Total units tried = 112\n",
      "all done trying to reduce usage of unit 527 final usage = 1.00309 7 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98862 0.04009\n",
      "starting to reduce usage for unit 760 with usage 1.02937 . Total units tried = 113\n",
      "all done trying to reduce usage of unit 760 final usage = 1.01524 7 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98859 0.04007\n",
      "starting to reduce usage for unit 717 with usage 1.02419 . Total units tried = 114\n",
      "all done trying to reduce usage of unit 717 final usage = 1.00292 7 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98859 0.04009\n",
      "starting to reduce usage for unit 372 with usage 1.02876 . Total units tried = 115\n",
      "all done trying to reduce usage of unit 372 final usage = 1.00749 7 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98858 0.04008\n",
      "starting to reduce usage for unit 376 with usage 1.02667 . Total units tried = 116\n",
      "all done trying to reduce usage of unit 376 final usage = 1.0054 7 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98858 0.04008\n",
      "starting to reduce usage for unit 371 with usage 1.0263 . Total units tried = 117\n",
      "all done trying to reduce usage of unit 371 final usage = 1.01032 7 sec elapsed 1 0 successful, failed patches, couldn't start= 4\n",
      "current avg and SD of usage are 0.98858 0.04007\n",
      "starting to reduce usage for unit 375 with usage 1.02717 . Total units tried = 118\n",
      "all done trying to reduce usage of unit 375 final usage = 1.0059 7 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98858 0.04008\n",
      "starting to reduce usage for unit 822 with usage 1.02887 . Total units tried = 119\n",
      "all done trying to reduce usage of unit 822 final usage = 1.0076 7 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98858 0.04008\n",
      "starting to reduce usage for unit 569 with usage 1.0268 . Total units tried = 120\n",
      "all done trying to reduce usage of unit 569 final usage = 1.00553 7 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98859 0.04007\n",
      "starting to reduce usage for unit 428 with usage 1.02912 . Total units tried = 121\n",
      "all done trying to reduce usage of unit 428 final usage = 1.0157 7 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98857 0.04005\n",
      "starting to reduce usage for unit 410 with usage 1.02397 . Total units tried = 122\n",
      "all done trying to reduce usage of unit 410 final usage = 1.01081 7 sec elapsed 1 0 successful, failed patches, couldn't start= 1\n",
      "current avg and SD of usage are 0.98858 0.04004\n",
      "starting to reduce usage for unit 84 with usage 1.02393 . Total units tried = 123\n",
      "all done trying to reduce usage of unit 84 final usage = 1.00906 7 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98858 0.04002\n",
      "starting to reduce usage for unit 490 with usage 1.02385 . Total units tried = 124\n",
      "all done trying to reduce usage of unit 490 final usage = 1.0042 7 sec elapsed 1 0 successful, failed patches, couldn't start= 1\n",
      "current avg and SD of usage are 0.98858 0.04002\n",
      "starting to reduce usage for unit 692 with usage 1.02753 . Total units tried = 125\n",
      "all done trying to reduce usage of unit 692 final usage = 1.00153 7 sec elapsed 2 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98859 0.04002\n",
      "starting to reduce usage for unit 845 with usage 1.02616 . Total units tried = 126\n",
      "all done trying to reduce usage of unit 845 final usage = 1.00652 8 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98858 0.04\n",
      "starting to reduce usage for unit 469 with usage 1.02381 . Total units tried = 127\n",
      "all done trying to reduce usage of unit 469 final usage = 1.01384 8 sec elapsed 1 0 successful, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98858 0.03995\n"
     ]
    }
   ],
   "source": [
    "#SECOND PATCHING BLOCK -- OVERUSERS.  applies a suppression of LONG STRINGS.  run second for most states except MA\n",
    "maxSD = 0.04 #0.06  #0.08  #0.04  #oops, did 0.06 first for 0.36 / 1.5 case\n",
    "stopMaxUse = 1.02 #1.+  2.* maxSD  #0.5*maxSD  #don't be too aggressive; may create long chains\n",
    "print(\"default use threshold for moving on to next overused unit is\",r5(stopMaxUse) )\n",
    "stopMaxUse = float(input(\"enter updated stopMaxUse value\"))\n",
    "nInPlay = 0\n",
    "for u in range(nUnits):\n",
    "    if unitUse[u] > stopMaxUse:\n",
    "        nInPlay +=1\n",
    "print(\"there are currently\",nInPlay,\"units out of\",nUnits,\"with usage above\",stopMaxUse)\n",
    "nBigUsers = 5\n",
    "maxExchangePop = 0.05*aDP\n",
    "print(\"maxExchangePop is currently\",r5(maxExchangePop/aDP),\"fraction of avgDistrictPop\")\n",
    "newMEPratio = 0.05 #float(input(\"Enter updated maxExchangePop fraction\"))\n",
    "maxExchangePop = newMEPratio*aDP \n",
    "print(\"this block reduces overuse, with exchanges up to\",int(maxExchangePop)) #1/25/24\n",
    "maxGap = 0.9 * np.median(unitPop) \n",
    "maxNtries = 0\n",
    "for u in range(nUnits):\n",
    "    if unitUse[u] > stopMaxUse:\n",
    "        maxNtries +=1\n",
    "#maxNtries = int(currSD * nUnits / nDistricts)   #try up to about 10% of the districts a unit is drawn into\n",
    "#maxNtries = 10 #overrirde\n",
    "currAvg, currSD = getWeightedAvgAndSD(unitUse,unitPop)\n",
    "attemptedBigUs = list()\n",
    "print(\"current avg and SD of unit usage are\",r5(currAvg), r5(currSD),\". Now trying to reduce up to\",maxNtries,\"units' overusage\" )\n",
    "startTime = time.time()\n",
    "while currSD > maxSD and len(attemptedBigUs) < maxNtries: \n",
    "    #each round, find the (5) most overused not-yet-tried units. Pick the unit w/ most overuse of it + 1-nbrs\n",
    "    idx = np.argsort(unitUse)\n",
    "    idxNo, nBigFound, bigUsers = 0,0,list()\n",
    "    while nBigFound < nBigUsers:\n",
    "        consideredBigU = idx[-idxNo-1]\n",
    "        if consideredBigU not in attemptedBigUs:\n",
    "            bigUsers.append(consideredBigU)\n",
    "            nBigFound +=1\n",
    "        idxNo +=1\n",
    "    OUUclusters = [ [b] + unitNbrs[b] for b in bigUsers ]\n",
    "    bigOverUse = [np.sum([(unitUse[j] - 1.) for j in OUUclusters[i] ]) for i in range(nBigUsers) ]\n",
    "    bigI = bigOverUse.index(np.max(bigOverUse))\n",
    "    OUU = bigUsers[ bigI ]  #pick the unit that centers cluster with most overuse\n",
    "    attemptedBigUs.append(OUU)  #so we don't try this unit again in a future loop\n",
    "    OUUc = OUUclusters[bigI]  #the list of this unit and ALL its neighbors (to be curated below ...)\n",
    "    print(\"starting to reduce usage for unit\",OUU,\"with usage\",r5(unitUse[OUU]),\". Total units tried =\",len(attemptedBigUs) )\n",
    "    for u in OUUc.copy():\n",
    "        if unitUse[u] < 1.:\n",
    "            OUUc.remove(u)  #...drop any underused neighbors of the primary OUU from the target sheddable cluster\n",
    "    OUU2nbrSet = set( unitNbrs[OUU])\n",
    "    for u in OUUc:\n",
    "        OUU2nbrSet = OUU2nbrSet.union(set(unitNbrs[u])) \n",
    "    for u in OUUc:\n",
    "        OUU2nbrSet = OUU2nbrSet.difference({u})\n",
    "    ouuHDs, ouuDists = list(), list()\n",
    "    for t in popHDlist:  #finding all HDs with at least one cluster member on the boundary\n",
    "        if OUU in HDunitList[t]:\n",
    "            HDadjoinSet = set( getAdjoiners(HDunitList[t],unitNbrs) )\n",
    "            if len(HDadjoinSet.intersection(OUU2nbrSet) ) > 0: #the OUU or one of its overused 1-neighbors adjoins the complement\n",
    "                ouuHDs.append(t)  #so we can shed the OOUc to the complement\n",
    "                ouuDists.append( unitCP[OUU].distance(hdCP[t]) / avgDist[t] )\n",
    "    nPatchSuccess, nPatchFail, nCouldntStart, idxNo, idx0 = 0, 0, 0, 0, np.argsort(ouuDists)\n",
    "    while unitUse[OUU] > stopMaxUse and idxNo > -0.5*len(ouuHDs): #arbitrarily only examine 50% of HDs, biasing farthest ones\n",
    "        aDP = countyADP[unitCountyNo[OUU]]\n",
    "        maxGap = 0.05 * aDP   #blocky\n",
    "\n",
    "        idxNo -=1\n",
    "        if idxNo % int(0.1*len(ouuHDs)) == 0:\n",
    "            print(\"try to drop unit\",OUU,\"from\",abs(idxNo),\"th HD.  usage down to\",unitUse[OUU] )\n",
    "        t = ouuHDs[idx0[idxNo]]\n",
    "        trySet = set(HDunitList[t]).difference(set(OUUc))\n",
    "        contig,complementContig, __, ___ = enclaveCheck(list(trySet), unitNbrs)\n",
    "        if not (contig and complementContig):  #dropping the cluster creates a problem (likely an HD discontig).  Try something simpler ...\n",
    "            if len(set(unitNbrs[OUU]).intersection(HDadjoinSet) )  > 0:  #Yay! The OUU itself on border.  Try dropping just it, not the full cluster\n",
    "                HDouuSet = {OUU}\n",
    "                trySet = set(HDunitList[t]).difference( {OUU} )\n",
    "                contig,complementContig, __, ___ = enclaveCheck(list(trySet), unitNbrs)\n",
    "        else:\n",
    "            HDouuSet = set(HDunitList[t]).intersection(set(OUUc))\n",
    "        if contig and complementContig:  #we can at least drop the cluster, let's go for more\n",
    "            #HDouuSet = set(HDunitList[t]).intersection(set(OUUc))  #the subset of the OUU cluster that's in this HD.  Defined above\n",
    "            HDouuCpop = np.sum([unitPop[u] for u in HDouuSet])\n",
    "            giveUpOnShedding = False            \n",
    "            shedCandidates, shedScores = list(), list()\n",
    "            bdryCandidates = getBdryNonEdgers(trySet, unitNbrs)  #new - any boundary unit can be shed, even if far from OUUc\n",
    "            for u in bdryCandidates:\n",
    "                if HDouuCpop + unitPop[u] <= maxExchangePop:\n",
    "                    shedCandidates.append(u)\n",
    "                    shedScores.append((unitUse[u] - 1.) * unitCP[u].distance(hdCP[t])/avgDist[t])  #bias toward far, overused\n",
    "            if len(shedCandidates) == 0:\n",
    "                giveUpOnShedding = True\n",
    "            while HDouuCpop < maxExchangePop and not giveUpOnShedding:\n",
    "                idx, ij, notYetPicked = np.argsort(shedScores), 0, True\n",
    "                while ij < len(shedScores) and notYetPicked:\n",
    "                    listNo = idx[-1-ij]   #work from high to low score\n",
    "                    shedU = shedCandidates[listNo]\n",
    "                    if shedScores[listNo] <= 0:  #we're delving into the underused; stop adding to shed list\n",
    "                        break\n",
    "                    contig,cContig, __, ___ = enclaveCheck(list(trySet.difference({shedU}) ), unitNbrs)\n",
    "                    if contig and cContig:\n",
    "                        notYetPicked = False\n",
    "                        HDouuCpop += unitPop[shedU]\n",
    "                        #print(\"shedding unit\",shedU,\"from HD\",t,\"total shed Pop now\", HDouuCpop)\n",
    "                        HDouuSet.add(shedU)\n",
    "                        trySet.remove(shedU)\n",
    "                        del shedScores[shedCandidates.index(shedU)]\n",
    "                        del shedCandidates[shedCandidates.index(shedU)]\n",
    "                        newSheddables = set(unitNbrs[shedU]).intersection(trySet)\n",
    "                        for u in newSheddables:\n",
    "                            if HDouuCpop + unitPop[u] <= maxExchangePop and u not in shedCandidates:\n",
    "                                shedCandidates.append(u)\n",
    "                                shedScores.append((unitUse[u] - 1.) * unitCP[u].distance(hdCP[t])/avgDist[t])\n",
    "                    else:\n",
    "                        ij +=1\n",
    "                if notYetPicked:\n",
    "                    giveUpOnShedding = True  #all candidates would create a discontig, so can't shed any more units\n",
    "            shedSet = HDouuSet.copy()  #set(OUUc).intersection(set(HDunitList[t]))\n",
    "            trySet = set(HDunitList[t]).difference(shedSet) \n",
    "            gap = aDP - np.sum([unitPop[u] for u in trySet])\n",
    "            nearHDlist, nearHDscore = list(), list()  #these will be dynamic lists of the nearby underused units\n",
    "            for u in trySet:\n",
    "                for uu in unitNbrs[u]:\n",
    "                    if uu not in HDunitList[t] and uu not in nearHDlist and unitPop[uu] < gap + maxGap and unitUse[uu] < 1.01:\n",
    "                        nearHDlist.append(uu)\n",
    "                        nearHDscore.append(5.*(unitUse[uu]-1.) + unitCP[uu].distance(hdCP[t]) / avgDist[t] )\n",
    "                        #bias toward UNDERUSED, close\n",
    "            addedSet = set( )    \n",
    "            stillGoing = True \n",
    "            while gap > maxGap and len(nearHDlist) > 0 and stillGoing:   #add the lowest-scoring neighboring underused unit until we've roughly squared the HDpop\n",
    "                nearHDscore2 = nearHDscore.copy()\n",
    "                for ij, uu in enumerate(nearHDlist):\n",
    "                    nHDnbrs = len( set(unitNbrs[uu]).intersection(trySet) )\n",
    "                    if nHDnbrs == 1 :  #BIAS AGAINST CREATING A SLIM CHAIN\n",
    "                        nearHDscore2[ij] *= 0.5   #make this score closer to zero (less negative)  #NEW FOR GA 3/11/24\n",
    "                idx, ij, notYetPicked = np.argsort(nearHDscore2), 0, True   #originally, used nearHDscore itself here\n",
    "                while ij < len(nearHDscore) and notYetPicked:        \n",
    "                    listNo = idx[ij]   #nearHDscore.index(np.min(nearHDscore))\n",
    "                    unitNoToAdd = nearHDlist[listNo]  #add this unit ...                            \n",
    "                    canAdd  = wontEnclave(unitNoToAdd, list(trySet), unitNbrs, borderUnits)\n",
    "                    if canAdd:\n",
    "                        notYetPicked = False\n",
    "                    else:\n",
    "                        ij +=1\n",
    "                if notYetPicked:\n",
    "                    stillGoing = False  #can't add any more units; we can't without creating an enclave\n",
    "                else:\n",
    "                    gap -= unitPop[unitNoToAdd]\n",
    "                    addedSet.add(unitNoToAdd)\n",
    "                    trySet.add( unitNoToAdd)\n",
    "                    for uu in unitNbrs[unitNoToAdd]:             # ... and add its nonHD neighbors to future candidates\n",
    "                        if uu not in trySet and uu not in nearHDlist and unitPop[uu] < gap + maxGap and unitUse[uu] < 1.01:  \n",
    "                            nearHDlist.append(uu)\n",
    "                            nearHDscore.append(5.* (unitUse[uu]-1.) + unitCP[uu].distance(hdCP[t]) / avgDist[t] ) \n",
    "                            #bias toward UNDERUSED, ~close\n",
    "                    del nearHDscore[nearHDlist.index(unitNoToAdd)]        \n",
    "                    del nearHDlist[ nearHDlist.index(unitNoToAdd) ]\n",
    "                    for ijj, uu in enumerate(nearHDlist.copy()):\n",
    "                        if unitPop[uu] > gap + maxGap:   #with the added pop from another unit, this unit is now too big to add\n",
    "                            del nearHDscore[nearHDlist.index(uu)]\n",
    "                            del nearHDlist[ nearHDlist.index(uu)]\n",
    "            currPop = np.sum([unitPop[u] for u in trySet])\n",
    "            if abs(currPop - aDP) <= 2.* maxGap:\n",
    "                for u in shedSet:\n",
    "                    unitUse[u] -= HDweight[t] * nDistricts\n",
    "                for u in addedSet:\n",
    "                    unitUse[u] += HDweight[t] * nDistricts\n",
    "                HDunitList[t] = list(trySet)\n",
    "                HDvPop[t]    = currPop\n",
    "                nPatchSuccess +=1\n",
    "            else:\n",
    "                nPatchFail +=1\n",
    "            # end of shed + add patching on this HD\n",
    "            #print(\"shed and patched for HD, OUU\",t,OUU)\n",
    "        else:\n",
    "            nCouldntStart +=1\n",
    "            #print(\"Due to discontiguity, can't drop OUU cluster for HD, OUU\", t, OUU)\n",
    "    print(\"all done trying to reduce usage of unit\",OUU,\"final usage =\",r5(unitUse[OUU]),int(time.time()-startTime),\"sec elapsed\",\n",
    "         nPatchSuccess,nPatchFail,\"successful, failed patches, couldn't start=\",nCouldntStart)\n",
    "    currAvg, currSD = getWeightedAvgAndSD(unitUse,unitPop)\n",
    "    print(\"current avg and SD of usage are\",r5(currAvg), r5(currSD) )\n",
    " "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 277,
   "id": "f079ca3a-4e95-4ba5-844d-adc161bb2013",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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/v6WfX/5y1906NAh/fGPf1RMTIxGjBihxYsXKzk5uc7ECQCAMxw/flxJSUk6cuSIPvzwQ61cuVLTpk1Thw4d5OnpqZUrV+qHH37Qn//8Zy1evNjq2I4dO8pkMmnTpk06ffq0CgsL5e3treeee06zZs3Se++9p2PHjmnPnj165513Glyn5557Trt371ZiYqIyMjJ09OhRffLJJ5ZBst26ddPw4cP1+OOPa+/evUpPT9fkyZMb3HpjBFc1BiU/P1+SLIOALvvggw/0xz/+UWFhYRo9erTmzp1raUVJS0tT7969rUYrx8fH68knn9TBgwfVr1+/atcpLS1VaWmp5XVBQcHVVBsAYBCZuYWGv8748eNVXFysAQMGyN3dXdOmTdPUqVNlMpmUkpKiF154QStWrNANN9ygpUuX6u6777YcGxkZqYULF+r555/Xo48+qvHjxyslJUVz585Vq1atNG/ePP30008KDw+vNhyiLn369NHOnTv161//WoMHD5bZbFbnzp314IMPWsqsXr1akydP1pAhQxQaGqoXX3xRc+fObfR9cDST+fJkbhtVVlbq7rvvVl5enr788kvL+7///e/VsWNHRUREaP/+/Xruuec0YMAArV+/XpI0depU/fOf/9Tnn39uOebixYvy8/PTZ599phEjRlS71oIFC7Rw4cJq7+fn51u1zgCAPR3IztddK7/Upqdu0fWRATbvR5WSkhJlZWWpU6dOlqfbNpeVZIcOHaqYmBgtW7as6SrmYmr6vi8rKChQQEBAg35/N7oFJSEhQQcOHLAKJ1JVALmsd+/eCg8P1+23365jx441euDO7NmzlZSUZHldUFBg6e8DADQ/kYE+2jZjCM/iQa0aFVASExO1adMm7dq1S9dcc02dZQcOHChJyszMVOfOnRUWFqZ9+/ZZlTl16pQkKSwsrMZzeHl5ycvLqzFVBQAYVGSgD4EBtbIpoJjNZj311FPasGGDduzYoU6dOtV7TEZGhqSf53DHxsbqN7/5jXJzcxUSEiJJ2rp1q/z9/WudMw4AgDPs2LHD2VVosWwKKAkJCVqzZo0++eQTtWnTRjk5OZKkgIAA+fj46NixY1qzZo1Gjhypdu3aaf/+/XrmmWd06623WhacufPOO9WzZ0898sgjeuWVV5STk6M5c+YoISGBVhIAACDJxmnGb731lvLz8zV06FCFh4dbtnXr1kmqmu+9bds23XnnnerevbtmzJihMWPG6NNPP7Wcw93dXZs2bZK7u7tiY2P1q1/9SuPHj7daNwUAALRsNnfx1CUqKko7d+6s9zwdO3bUZ599ZsulAQBAC8LTjAEAgOEQUAAAgOEQUAAAgOFc1VL3AAA0Wt4J6eJZx13Pt50U2DIW+Zw4caLy8vK0ceNGu543JSVF06dPd8hDBwkoAADHyzshJQ+Qyi867poevlLCvmYXUlrqcvsEFACA4108WxVO7n9bCu7a9Nc78720fkrVdZtZQGmpGIMCAHCe4K5SREzTb40IQddee221VouYmBgtWLBAkmQymfSHP/xB9913n3x9fdWlSxf9+c9/tpTdsWOHTCaTNm/erD59+sjb21uDBg3SgQMHLGXOnj2rhx56SJGRkfL19VXv3r314YcfWvZPnDhRO3fu1PLly2UymWQymfTjjz9Kkg4ePKi77rpL/v7+atOmjQYPHqxjx45Z1Xfp0qUKDw9Xu3btlJCQoPLycsu+0tJSzZw5U5GRkfLz89PAgQOrrZybkpKiDh06yNfXV/fdd5/OnnVclxwBBQCARlq4cKEeeOAB7d+/XyNHjtS4ceN07tw5qzLPPvusXn31VX311Vdq3769Ro8ebQkKJSUl6t+/vzZv3qwDBw5o6tSpeuSRRyzPrFu+fLliY2M1ZcoUnTx5UidPnlRUVJSys7N16623ysvLS9u3b1d6eroee+wxXbp0yXLdL774QseOHdMXX3yhd999VykpKUpJSbHsT0xMVFpamtauXav9+/frP//zPzV8+HAdPXpUkrR3715NmjRJiYmJysjI0LBhw/Tiiy828R39GV08AAA00sSJE/XQQw9Jkl566SWtWLFC+/bt0/Dhwy1l5s+frzvuuEOS9O677+qaa67Rhg0b9MADDygyMlIzZ860lH3qqaf0+eef66OPPtKAAQMUEBAgT09P+fr6Wj1QNzk5WQEBAVq7dq08PDwkSV27WrcStW3bVm+88Ybc3d3VvXt3jRo1SqmpqZoyZYqOHz+u1atX6/jx44qIiJAkzZw5U1u2bNHq1av10ksvafny5Ro+fLhmzZplOf/u3bu1ZcuWJriT1RFQAABopMvPmZMkPz8/+fv7Kzc316pMbGys5d9BQUHq1q2bDh8+LEmqqKjQSy+9pI8++kjZ2dkqKytTaWmpfH1967xuRkaGBg8ebAknNenVq5fc3d0tr8PDw/Xtt99Kkr799ltVVFRUCzWlpaVq166dJOnw4cO67777qn0WAgoAAE7k5uZW7REvV47hkFQtIJhMJlVWVjb4Gr/73e+0fPlyLVu2TL1795afn5+mT5+usrKyOo/z8fGp99x11a2wsFDu7u5KT0+3CjGS1Lp16wbXvykRUAAAqEH79u118uRJy+uCggJlZWXZfJ49e/aoQ4cOkqTz58/r+++/V48ePSRJf/vb33TPPffoV7/6lSSpsrJS33//vXr27Gk53tPTUxUVFVbn7NOnj959912Vl5fX2YpSm379+qmiokK5ubkaPHhwjWV69OihvXv3VvssjsIgWQAAanDbbbfp/fff11//+ld9++23mjBhQrXWhoZYtGiRUlNTdeDAAU2cOFHBwcG69957JUldunTR1q1btXv3bh0+fFiPP/64Tp06ZXX8tddeq7179+rHH3/UmTNnVFlZqcTERBUUFGjs2LH6+uuvdfToUb3//vs6cuRIg+rUtWtXjRs3TuPHj9f69euVlZWlffv2acmSJdq8ebMk6emnn9aWLVu0dOlSHT16VG+88YbDunckWlAAAM505nvDXmf27NnKysrSXXfdpYCAAC1evLhRLSgvv/yypk2bpqNHjyomJkaffvqpPD09JUlz5szRDz/8oPj4ePn6+mrq1Km69957lZ+fbzl+5syZmjBhgnr27Kni4mJlZWXp2muv1fbt2/Xss89qyJAhcnd3V0xMjG6++eYG12v16tV68cUXNWPGDGVnZys4OFiDBg3SXXfdJUkaNGiQ3n77bc2fP1/z5s1TXFyc5syZo8WLF9t8DxrDZP5lB1szUFBQoICAAOXn58vf39/Z1QHgog5k5+uulV9q01O36PrIAJv3o0pJSYmysrLUqVMneXt7V73ZAlaS3bFjh4YNG6bz588rMDDQIdc0ghq/73+z5fc3LSgAAMcLjKoKCzyLB7UgoAAAnCMwisCAWhFQAABoAkOHDq02TRkNxyweAABgOAQUAABgOAQUAIBD0N3RMtjreyagAACa1OWVTi9edOCUYjjN5e+5MSvcXolBsgCAJuXu7q7AwEDLQ/R8fX1lMpmcXCvYm9ls1sWLF5Wbm6vAwMBGrbp7JQIKAKDJhYWFSVK1J/3C9QQGBlq+76tBQAEANDmTyaTw8HCFhIRUeyIwXIeHh8dVt5xcRkABADiMu7u73X6BwbUxSBYAABgOAQUAABgOAQUAABgOAQUAABgOAQUAABgOAQUAABgOAQUAABgOAQUAABgOAQUAABgOAQUAABgOAQUAABgOAQUAABgOAQUAABgOAQUAABgOAQUAABgOAQUAABgOAQUAABgOAQUAABgOAQUAABgOAQUAABgOAQUAABgOAQUAABgOAQUAABgOAQUAABgOAQUAABgOAQUAABgOAQUAABgOAQUAABgOAQUAABgOAQUAABgOAQUAABgOAQUAABiOTQFlyZIluummm9SmTRuFhITo3nvv1ZEjR6zKlJSUKCEhQe3atVPr1q01ZswYnTp1yqrM8ePHNWrUKPn6+iokJETPPvusLl26dPWfBgAAuASbAsrOnTuVkJCgPXv2aOvWrSovL9edd96poqIiS5lnnnlGn376qT7++GPt3LlTP/30k+6//37L/oqKCo0aNUplZWXavXu33n33XaWkpGjevHn2+1QAAKBZa2VL4S1btli9TklJUUhIiNLT03XrrbcqPz9f77zzjtasWaPbbrtNkrR69Wr16NFDe/bs0aBBg/SXv/xFhw4d0rZt2xQaGqqYmBgtXrxYzz33nBYsWCBPT0/7fToAANAsXdUYlPz8fElSUFCQJCk9PV3l5eWKi4uzlOnevbs6dOigtLQ0SVJaWpp69+6t0NBQS5n4+HgVFBTo4MGDNV6ntLRUBQUFVhsAAHBdjQ4olZWVmj59um6++WZdf/31kqScnBx5enoqMDDQqmxoaKhycnIsZa4MJ5f3X95XkyVLliggIMCyRUVFNbbaAACgGWh0QElISNCBAwe0du1ae9anRrNnz1Z+fr5lO3HiRJNfEwAAOI9NY1AuS0xM1KZNm7Rr1y5dc801lvfDwsJUVlamvLw8q1aUU6dOKSwszFJm3759Vue7PMvncplf8vLykpeXV2OqCgAAmiGbWlDMZrMSExO1YcMGbd++XZ06dbLa379/f3l4eCg1NdXy3pEjR3T8+HHFxsZKkmJjY/Xtt98qNzfXUmbr1q3y9/dXz549r+azAAAAF2FTC0pCQoLWrFmjTz75RG3atLGMGQkICJCPj48CAgI0adIkJSUlKSgoSP7+/nrqqacUGxurQYMGSZLuvPNO9ezZU4888oheeeUV5eTkaM6cOUpISKCVBAAA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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "unpatched, patched use avgs are 0.98902 0.98858 and their SDs are 0.08161 0.03995\n",
      "And here is the pop distro\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAGdCAYAAAA44ojeAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA0UklEQVR4nO3de3hV1Z3/8c9JICcXOIkBcivhIigQCaKo4ailVFICZkRLHBUZQctAtcFW0kFMhyLg1PCgo7YOF/VBsL+CKNYrIAhYoA7hYkrKVQYYKFA4QaHkcD25rd8fmWw8AmIg4awk79fz7OfZZ++Vfb6LTZJP1t57HZcxxggAAMAiYaEuAAAA4JsIKAAAwDoEFAAAYB0CCgAAsA4BBQAAWIeAAgAArENAAQAA1iGgAAAA6zQLdQGXoqqqSgcPHlTLli3lcrlCXQ4AAPgOjDE6fvy4UlJSFBb27WMkDTKgHDx4UKmpqaEuAwAAXIL9+/erbdu239qmQQaUli1bSqruoMfjCXE1QB2oOCm9m1K9Pvig1CwmtPUAQD3w+/1KTU11fo9/mwYZUGou63g8HgIKGoeKcCn6/9Y9HgIKgEbtu9yewU2yAADAOg1yBAVodFzNpI7Dz64DQBPHT0LABuFuyTsn1FUAgDW4xAMAAKzDCApgA2OkylPV6+HREvP7AGjiGEEBbFB5Snq7RfVSE1QAoAm7rIAyZcoUuVwuPfHEE862M2fOKDc3V61atVKLFi2Uk5OjkpKSoK/bt2+fsrOzFR0drYSEBI0dO1YVFRWXUwoAAGhELjmgbNiwQa+88op69OgRtH3MmDH66KOPtGDBAq1atUoHDx7U4MGDnf2VlZXKzs5WWVmZ1qxZozfeeENz5szRhAkTLr0XAACgUbmkgHLixAkNHTpUr732mq666ipne2lpqWbNmqUXXnhBd9xxh3r16qXZs2drzZo1Wrt2rSTpk08+0bZt2/SHP/xBPXv21MCBA/XMM89o2rRpKisrq5teAQCABu2SAkpubq6ys7OVmZkZtL2oqEjl5eVB27t27ap27dqpsLBQklRYWKj09HQlJiY6bbKysuT3+7V169bzvl8gEJDf7w9aAABA41Xrp3jmz5+vv/zlL9qwYcM5+3w+nyIiIhQXFxe0PTExUT6fz2nz9XBSs79m3/kUFBRo0qRJtS0VAAA0ULUaQdm/f79+8YtfaO7cuYqMjKyvms6Rn5+v0tJSZ9m/f/8Ve28AAHDl1WoEpaioSIcPH9aNN97obKusrNTq1av1X//1X1q6dKnKysp07NixoFGUkpISJSUlSZKSkpK0fv36oOPWPOVT0+ab3G633G53bUoFGhZXuJR679l1AGjiajWC0q9fP23evFnFxcXOctNNN2no0KHOevPmzbVixQrna3bs2KF9+/bJ6/VKkrxerzZv3qzDhw87bZYtWyaPx6O0tLQ66hbQwIRHSt9fUL2EX7nRSQCwVa1GUFq2bKnu3bsHbYuJiVGrVq2c7SNGjFBeXp7i4+Pl8Xj0+OOPy+v1qnfv3pKk/v37Ky0tTQ899JCmTp0qn8+n8ePHKzc315pRkg5PLQp1CbW2d0p2qEsAAKDO1PlU9y+++KLCwsKUk5OjQCCgrKwsTZ8+3dkfHh6uhQsX6rHHHpPX61VMTIyGDx+uyZMn13UpAACggXIZY0yoi6gtv9+v2NhYlZaWyuPx1PnxGUHBFVdxsnqae0m674TULCa09QBAPajN728+iwcAAFiHgAIAAKxDQAEAANYhoAAAAOsQUAAAgHUIKAAAwDp1Pg8KgEvgCpdS7jy7DgBNHAEFsEF4pNS34c2/AwD1hUs8AADAOgQUAABgHQIKYIOKk9JbMdVLxclQVwMAIcc9KIAtKk+FugIAsAYjKAAAwDoEFAAAYB0CCgAAsA4BBQAAWIeAAgAArMNTPIAVwqSEH5xdB4AmjoAC2KBZlJS5MtRVAIA1+FMNAABYh4ACAACsQ0ABbFBxUvpjm+qFqe4BgHtQAGsEvgp1BQBgDUZQAACAdQgoAADAOgQUAABgHQIKAACwDgEFAABYh6d4ACuESfE3nV0HgCaOgALYoFmUNGBDqKsAAGvwpxoAALAOAQUAAFiHgALYoOKU9EGH6qXiVKirAYCQq1VAmTFjhnr06CGPxyOPxyOv16uPP/7Y2d+3b1+5XK6g5dFHHw06xr59+5Sdna3o6GglJCRo7NixqqioqJveAA2WkU7+rXqRCXUxABBytbpJtm3btpoyZYquueYaGWP0xhtv6O6779bGjRt13XXXSZJGjhypyZMnO18THR3trFdWVio7O1tJSUlas2aNDh06pGHDhql58+Z69tln66hLAACgoatVQLnrrruCXv/mN7/RjBkztHbtWiegREdHKykp6bxf/8knn2jbtm1avny5EhMT1bNnTz3zzDMaN26cJk6cqIiIiEvsBgAAaEwu+R6UyspKzZ8/XydPnpTX63W2z507V61bt1b37t2Vn5+vU6fOXk8vLCxUenq6EhMTnW1ZWVny+/3aunXrBd8rEAjI7/cHLQAAoPGq9Twomzdvltfr1ZkzZ9SiRQu99957SktLkyQ9+OCDat++vVJSUrRp0yaNGzdOO3bs0LvvvitJ8vl8QeFEkvPa5/Nd8D0LCgo0adKk2pYKAAAaqFoHlC5duqi4uFilpaV65513NHz4cK1atUppaWkaNWqU0y49PV3Jycnq16+fdu/erU6dOl1ykfn5+crLy3Ne+/1+paamXvLxAACA3WodUCIiItS5c2dJUq9evbRhwwb99re/1SuvvHJO24yMDEnSrl271KlTJyUlJWn9+vVBbUpKSiTpgvetSJLb7Zbb7a5tqUAD4pJi086uA0ATd9nzoFRVVSkQCJx3X3FxsSQpOTlZkuT1erV582YdPnzYabNs2TJ5PB7nMhHQJDWLlrK3Vi/Noi/eHgAauVqNoOTn52vgwIFq166djh8/rnnz5mnlypVaunSpdu/erXnz5unOO+9Uq1attGnTJo0ZM0Z9+vRRjx49JEn9+/dXWlqaHnroIU2dOlU+n0/jx49Xbm4uIyQAAMBRq4By+PBhDRs2TIcOHVJsbKx69OihpUuX6kc/+pH279+v5cuX66WXXtLJkyeVmpqqnJwcjR8/3vn68PBwLVy4UI899pi8Xq9iYmI0fPjwoHlTAAAAXMaYBjdtpd/vV2xsrEpLS+XxeOr8+B2eWlTnx6xve6dkh7oEXI6KU9LSm6vXszZwmQdAo1Sb39+1vkkWQH0wUum2s+sA0MTxYYEAAMA6BBQAAGAdAgoAALAOAQUAAFiHgAIAAKzDUzyAFVxSTPuz6wDQxBFQABs0i5bu3hvqKgDAGlziAQAA1iGgAAAA6xBQABtUnJaW3Fy9VJwOdTUAEHLcgwJYoUo6+vnZdQBo4hhBAQAA1iGgAAAA6xBQAACAdQgoAADAOgQUAABgHZ7iAWzhbh3qCgDAGgQUwAbNYqScL0NdBQBYg0s8AADAOgQUAABgHQIKYIOK09LyvtULU90DAPegAHaokg6vOrsOAE0cIygAAMA6BBQAAGAdAgoAALAOAQUAAFiHgAIAAKzDUzyALcKjQ10BAFiDgALYoFmMdP/JUFcBANbgEg8AALAOAQUAAFiHgALYoPKMtDK7eqk8E+pqACDkuAcFsIGplA4uPrsOAE1crUZQZsyYoR49esjj8cjj8cjr9erjjz929p85c0a5ublq1aqVWrRooZycHJWUlAQdY9++fcrOzlZ0dLQSEhI0duxYVVRU1E1vAABAo1CrgNK2bVtNmTJFRUVF+vzzz3XHHXfo7rvv1tatWyVJY8aM0UcffaQFCxZo1apVOnjwoAYPHux8fWVlpbKzs1VWVqY1a9bojTfe0Jw5czRhwoS67RUAAGjQXMYYczkHiI+P13PPPad7771Xbdq00bx583TvvfdKkr744gt169ZNhYWF6t27tz7++GP90z/9kw4ePKjExERJ0syZMzVu3Dh9+eWXioiI+E7v6ff7FRsbq9LSUnk8nssp/7w6PLWozo9Z3/ZOyQ51CbgcFSelt1tUr993ovqxYwBoZGrz+/uSb5KtrKzU/PnzdfLkSXm9XhUVFam8vFyZmZlOm65du6pdu3YqLCyUJBUWFio9Pd0JJ5KUlZUlv9/vjMKcTyAQkN/vD1oAAEDjVeuAsnnzZrVo0UJut1uPPvqo3nvvPaWlpcnn8ykiIkJxcXFB7RMTE+Xz+SRJPp8vKJzU7K/ZdyEFBQWKjY11ltTU1NqWDQAAGpBaB5QuXbqouLhY69at02OPPabhw4dr27Zt9VGbIz8/X6Wlpc6yf//+en0/AAAQWrV+zDgiIkKdO3eWJPXq1UsbNmzQb3/7W91///0qKyvTsWPHgkZRSkpKlJSUJElKSkrS+vXrg45X85RPTZvzcbvdcrvdtS0VaDiaxUgPXtbtYADQqFz2RG1VVVUKBALq1auXmjdvrhUrVjj7duzYoX379snr9UqSvF6vNm/erMOHDzttli1bJo/Ho7S0tMstBQAANBK1GkHJz8/XwIED1a5dOx0/flzz5s3TypUrtXTpUsXGxmrEiBHKy8tTfHy8PB6PHn/8cXm9XvXu3VuS1L9/f6Wlpemhhx7S1KlT5fP5NH78eOXm5jJCAgAAHLUKKIcPH9awYcN06NAhxcbGqkePHlq6dKl+9KMfSZJefPFFhYWFKScnR4FAQFlZWZo+fbrz9eHh4Vq4cKEee+wxeb1excTEaPjw4Zo8eXLd9gpoaCrPSGseql6/9f9J4ZGhrQcAQuyy50EJBeZBORfzoDRwzIMCoAm4IvOgAAAA1BcCCgAAsA4BBQAAWIeAAgAArENAAQAA1iGgAAAA69R6qnsA9SA8uvrx4pp1AGjiCCiADVwu5j4BgK/hEg8AALAOAQWwQWVAKny4eqkMhLoaAAg5AgpgA1Mh7XmjejEVoa4GAEKOgAIAAKxDQAEAANYhoAAAAOsQUAAAgHUIKAAAwDoEFAAAYB1mkgVsEB4tDT58dh0AmjgCSiPR4alFoS6h1vZOyQ51CfZwuaTINqGuAgCswSUeAABgHQIKYIPKgLQht3phqnsAIKAAVjAV0s7p1QtT3QMAAQUAANiHgAIAAKxDQAEAANYhoAAAAOsQUAAAgHUIKAAAwDrMJAvYIDxKGrTn7DoANHEEFMAGrjCpRYdQVwEA1uASDwAAsA4BBbBBZZm0cWz1UlkW6moAIOQIKIANTLm0/fnqxZSHuhoACLlaBZSCggLdfPPNatmypRISEnTPPfdox44dQW369u0rl8sVtDz66KNBbfbt26fs7GxFR0crISFBY8eOVUUFnz8CAACq1eom2VWrVik3N1c333yzKioq9Ktf/Ur9+/fXtm3bFBMT47QbOXKkJk+e7LyOjo521isrK5Wdna2kpCStWbNGhw4d0rBhw9S8eXM9++yzddAlAADQ0NUqoCxZsiTo9Zw5c5SQkKCioiL16dPH2R4dHa2kpKTzHuOTTz7Rtm3btHz5ciUmJqpnz5565plnNG7cOE2cOFERERGX0A0AANCYXNY9KKWlpZKk+Pj4oO1z585V69at1b17d+Xn5+vUqVPOvsLCQqWnpysxMdHZlpWVJb/fr61bt573fQKBgPx+f9ACAAAar0ueB6WqqkpPPPGEbrvtNnXv3t3Z/uCDD6p9+/ZKSUnRpk2bNG7cOO3YsUPvvvuuJMnn8wWFE0nOa5/Pd973Kigo0KRJky61VAAA0MBcckDJzc3Vli1b9NlnnwVtHzVqlLOenp6u5ORk9evXT7t371anTp0u6b3y8/OVl5fnvPb7/UpNTb20wgEAgPUuKaCMHj1aCxcu1OrVq9W2bdtvbZuRkSFJ2rVrlzp16qSkpCStX78+qE1JSYkkXfC+FbfbLbfbfSmlAg1DeJR055az6wDQxNXqHhRjjEaPHq333ntPn376qTp27HjRrykuLpYkJScnS5K8Xq82b96sw4cPO22WLVsmj8ejtLS02pQDNB6uMCnuuurFxfREAFCrEZTc3FzNmzdPH3zwgVq2bOncMxIbG6uoqCjt3r1b8+bN05133qlWrVpp06ZNGjNmjPr06aMePXpIkvr376+0tDQ99NBDmjp1qnw+n8aPH6/c3FxGSQAAgKRajqDMmDFDpaWl6tu3r5KTk53lrbfekiRFRERo+fLl6t+/v7p27apf/vKXysnJ0UcffeQcIzw8XAsXLlR4eLi8Xq/+5V/+RcOGDQuaNwVocirLpE0TqxemugeA2o2gGGO+dX9qaqpWrVp10eO0b99eixcvrs1bA42bKZe2/N+TamljJTEfEICmjYvdAADAOgQUAABgHQIKAACwDgEFAABYh4ACAACsQ0ABAADWueTP4gFQh8Iipaz1Z9cBoIkjoAA2CAuXWt0c6ioAwBpc4gEAANZhBAWwQWWZtOO31etdfiGFM5MsgKaNgALYwJRLxU9Wr1/7MzHVPYCmjks8AADAOgQUAABgHQIKAACwDgEFAABYh4ACAACsQ0ABAADW4TFjwAZhkVK/P51dB4AmjoAC1EKHpxZdgXdZUqdH2zslu06PBwBXApd4AACAdRhBASzQTBUa0qp65OTNIwNUwbcmgCaOn4KABZq7KvTM92ZKkt45mqkKw7cmgKaNSzwAAMA6BBQAAGAdAgoAALAOAQUAAFiHgAIAAKxDQAEAANbhWUbAAmWmuR7Z87SzDgBNHQEFsEClwvWn4zeHugwAsAaXeAAAgHUYQQEs0EwVuueqlZKk9//Rl6nuATR5/BQELNDcVaHnU1+SJC06djtT3QNo8rjEAwAArFOrgFJQUKCbb75ZLVu2VEJCgu655x7t2LEjqM2ZM2eUm5urVq1aqUWLFsrJyVFJSUlQm3379ik7O1vR0dFKSEjQ2LFjVVFRcfm9AQAAjUKtAsqqVauUm5urtWvXatmyZSovL1f//v118uRJp82YMWP00UcfacGCBVq1apUOHjyowYMHO/srKyuVnZ2tsrIyrVmzRm+88YbmzJmjCRMm1F2vAABAg1arC91LliwJej1nzhwlJCSoqKhIffr0UWlpqWbNmqV58+bpjjvukCTNnj1b3bp109q1a9W7d2998skn2rZtm5YvX67ExET17NlTzzzzjMaNG6eJEycqIiKi7noHAAAapMu6B6W0tFSSFB8fL0kqKipSeXm5MjMznTZdu3ZVu3btVFhYKEkqLCxUenq6EhMTnTZZWVny+/3aunXred8nEAjI7/cHLQAAoPG65IBSVVWlJ554Qrfddpu6d+8uSfL5fIqIiFBcXFxQ28TERPl8PqfN18NJzf6afedTUFCg2NhYZ0lNTb3UsgEAQANwyc8y5ubmasuWLfrss8/qsp7zys/PV15envPa7/cTUtColJnm+tnfnnLWAaCpu6SAMnr0aC1cuFCrV69W27Ztne1JSUkqKyvTsWPHgkZRSkpKlJSU5LRZv3590PFqnvKpafNNbrdbbrf7UkoFGoRKhWtx6e2hLgMArFGrSzzGGI0ePVrvvfeePv30U3Xs2DFof69evdS8eXOtWLHC2bZjxw7t27dPXq9XkuT1erV582YdPnzYabNs2TJ5PB6lpaVdTl8AAEAjUasRlNzcXM2bN08ffPCBWrZs6dwzEhsbq6ioKMXGxmrEiBHKy8tTfHy8PB6PHn/8cXm9XvXu3VuS1L9/f6Wlpemhhx7S1KlT5fP5NH78eOXm5jJKgiYrXJXKiq2+kXxpqVeVCg9xRQAQWrUKKDNmzJAk9e3bN2j77Nmz9fDDD0uSXnzxRYWFhSknJ0eBQEBZWVmaPn260zY8PFwLFy7UY489Jq/Xq5iYGA0fPlyTJ0++vJ4ADViEq1zT20+RJHXb/I5OGwIKgKatVgHFGHPRNpGRkZo2bZqmTZt2wTbt27fX4sWLa/PWAACgCeGzeAAAgHUIKAAAwDoEFAAAYB0CCgAAsA4BBQAAWOeSp7oHUHfKTTP92/4nnHUAaOr4SQhYoELN9M4/Mi/eEACaCC7xAAAA6zCCAlggXJXq0/IvkqTVx29kqnsATR4BBbBAhKtcsztOksRU9wAgcYkHAABYiIACAACsQ0ABAADW4R4UhEyHpxaFugQAgKUYQQEAANYhoAAAAOtwiQewQLlppl///VFnHQCaOn4SAhaoUDP9vyP/FOoyAMAaXOIBAADWYQQFsECYKnVLzFZJ0vqT16mKqe4BNHEEFMACble55nf6lSSmugcAiUs8AADAQgQUAABgHQIKAACwDgEFAABYh4ACAACsQ0ABAADW4TFjwAIVCtezhx5x1gGgqSOgABYoN8316pc5oS4DAKzBJR4AAGAdRlAAC4SpUt2jdkuStpzuxFT3AJo8AgpgAberXB9ekyeJqe4BQOISDwAAsFCtA8rq1at11113KSUlRS6XS++//37Q/ocfflgulytoGTBgQFCbo0ePaujQofJ4PIqLi9OIESN04sSJy+oIAABoPGodUE6ePKnrr79e06ZNu2CbAQMG6NChQ87y5ptvBu0fOnSotm7dqmXLlmnhwoVavXq1Ro0aVfvqAQBAo1Tre1AGDhyogQMHfmsbt9utpKSk8+7bvn27lixZog0bNuimm26SJL388su688479fzzzyslJaW2JQEAgEamXu5BWblypRISEtSlSxc99thjOnLkiLOvsLBQcXFxTjiRpMzMTIWFhWndunX1UQ4AAGhg6vwpngEDBmjw4MHq2LGjdu/erV/96lcaOHCgCgsLFR4eLp/Pp4SEhOAimjVTfHy8fD7feY8ZCAQUCASc136/v67LBgAAFqnzgPLAAw846+np6erRo4c6deqklStXql+/fpd0zIKCAk2aNKmuSgSsU6FwvVQyxFkHgKau3h8zvvrqq9W6dWvt2rVLkpSUlKTDhw8HtamoqNDRo0cveN9Kfn6+SktLnWX//v31XTZwRZWb5nqpZKheKhmqctM81OUAQMjVe0A5cOCAjhw5ouTkZEmS1+vVsWPHVFRU5LT59NNPVVVVpYyMjPMew+12y+PxBC0AAKDxqvUlnhMnTjijIZK0Z88eFRcXKz4+XvHx8Zo0aZJycnKUlJSk3bt368knn1Tnzp2VlZUlSerWrZsGDBigkSNHaubMmSovL9fo0aP1wAMP8AQPmiyXqtTZXT0yuCuQKsMcigCauFr/FPz88891ww036IYbbpAk5eXl6YYbbtCECRMUHh6uTZs2adCgQbr22ms1YsQI9erVS3/+85/ldrudY8ydO1ddu3ZVv379dOedd+r222/Xq6++Wne9AhqYSFeZlnXJ1bIuuYp0lYW6HAAIOZcxxoS6iNry+/2KjY1VaWlpvVzu6fDUojo/JvBtolxntD39Xkk1n8UTGeKKQmvvlOxQlwCgHtTm9zfjyAAAwDoEFAAAYB0CCgAAsA4BBQAAWIeAAgAArFPnU90DqL0KheuVLwc76wDQ1BFQAAuUm+YqOPSTUJcBANbgEg8AALAOIyiABVyq0veafylJ+nt5G6a6B9DkEVAAC0S6yvRZtxGSmEkWACQu8QAAAAsRUAAAgHUIKAAAwDoEFAAAYB1ukgWAOtDhqUWhLqHW9k7JDnUJwAUxggIAAKzDCApggUqF6/dfZTvrANDUEVAAC5SZ5ppw8LFQlwEA1uASDwAAsA4jKIAVjOLD/ZKko5UeSa7QlgMAIUZAASwQ5QroL9cNlcRU9wAgcYkHAABYiIACAACsQ0ABAADWIaAAAADrEFAAAIB1CCgAAMA6PGYMWKBS4XrnaD9nHQCaOgIKYIEy01z/dmBMqMsAAGtwiQcAAFiHERTACkZRroAk6bRxi6nuATR1jKAAFohyBbQ9/V5tT7/XCSoA0JQRUAAAgHUIKAAAwDq1DiirV6/WXXfdpZSUFLlcLr3//vtB+40xmjBhgpKTkxUVFaXMzEzt3LkzqM3Ro0c1dOhQeTwexcXFacSIETpx4sRldQQAADQetQ4oJ0+e1PXXX69p06add//UqVP1u9/9TjNnztS6desUExOjrKwsnTlzxmkzdOhQbd26VcuWLdPChQu1evVqjRo16tJ7AQAAGpVaP8UzcOBADRw48Lz7jDF66aWXNH78eN19992SpN///vdKTEzU+++/rwceeEDbt2/XkiVLtGHDBt10002SpJdffll33nmnnn/+eaWkpFxGdwAAQGNQp48Z79mzRz6fT5mZmc622NhYZWRkqLCwUA888IAKCwsVFxfnhBNJyszMVFhYmNatW6cf//jH5xw3EAgoEDj7ZIPf76/LsgFYpsNTi0JdAoAQq9ObZH0+nyQpMTExaHtiYqKzz+fzKSEhIWh/s2bNFB8f77T5poKCAsXGxjpLampqXZYNhFyVwrTo2G1adOw2VXHvOgA0jIna8vPzlZeX57z2+/2EFDQqAROh3H35oS4DAKxRp3+qJSUlSZJKSkqCtpeUlDj7kpKSdPjw4aD9FRUVOnr0qNPmm9xutzweT9ACAAAarzoNKB07dlRSUpJWrFjhbPP7/Vq3bp28Xq8kyev16tixYyoqKnLafPrpp6qqqlJGRkZdlgMAABqoWl/iOXHihHbt2uW83rNnj4qLixUfH6927drpiSee0H/8x3/ommuuUceOHfXrX/9aKSkpuueeeyRJ3bp104ABAzRy5EjNnDlT5eXlGj16tB544AGe4EGTFeU6o+3p90qSum1+R6dNZIgrAoDQqnVA+fzzz/XDH/7QeV1zb8jw4cM1Z84cPfnkkzp58qRGjRqlY8eO6fbbb9eSJUsUGXn2B+7cuXM1evRo9evXT2FhYcrJydHvfve7OugOAABoDFzGGBPqImrL7/crNjZWpaWl9XI/Co844kpjBAWhsHdKdqhLQBNTm9/fPM8IAACsQ0ABAADWIaAAAADrEFAAAIB1GsRMskBjV6Uwfeq/yVkHgKaOgAJYIGAi9JO9E0NdBgBYgz/VAACAdQgoAADAOgQUwAJRrjPa1j1H27rnKMp1JtTlAEDIcQ8KYInosECoSwAAazCCAgAArENAAQAA1iGgAAAA6xBQAACAdQgoAADAOjzFA1igSi6tPdHdWQeApo6AAlggYNx64H+nhLoMALAGl3gAAIB1CCgAAMA6BBTAAlGuMypKe1BFaQ8y1T0AiHtQAGu0auYPdQkAYA1GUAAAgHUIKAAAwDoEFAAAYB0CCgAAsA4BBQAAWIeneAALVMmlv566xlkHgKaOgAJYIGDcunvXi6EuAwCswSUeAABgHQIKAACwDgEFsECk64w+6/oTfdb1J4pkqnsA4B4UwAYuSW0jDjvrANDUMYICAACsQ0ABAADWqfOAMnHiRLlcrqCla9euzv4zZ84oNzdXrVq1UosWLZSTk6OSkpK6LgMAADRg9TKCct111+nQoUPO8tlnnzn7xowZo48++kgLFizQqlWrdPDgQQ0ePLg+ygAAAA1Uvdwk26xZMyUlJZ2zvbS0VLNmzdK8efN0xx13SJJmz56tbt26ae3aterdu3d9lAMAABqYehlB2blzp1JSUnT11Vdr6NCh2rdvnySpqKhI5eXlyszMdNp27dpV7dq1U2Fh4QWPFwgE5Pf7gxagMTGS/udMO/3PmXYyoS4GACxQ5yMoGRkZmjNnjrp06aJDhw5p0qRJ+v73v68tW7bI5/MpIiJCcXFxQV+TmJgon893wWMWFBRo0qRJdV0qYI0zJlL9/2d6qMsAAGvUeUAZOHCgs96jRw9lZGSoffv2evvttxUVFXVJx8zPz1deXp7z2u/3KzU19bJrBQAAdqr3x4zj4uJ07bXXateuXUpKSlJZWZmOHTsW1KakpOS896zUcLvd8ng8QQsAAGi86j2gnDhxQrt371ZycrJ69eql5s2ba8WKFc7+HTt2aN++ffJ6vfVdCmCtSNcZfXLtz/TJtT9jqnsAUD1c4vm3f/s33XXXXWrfvr0OHjyop59+WuHh4RoyZIhiY2M1YsQI5eXlKT4+Xh6PR48//ri8Xi9P8KBJc0m6NnKfsw4ATV2dB5QDBw5oyJAhOnLkiNq0aaPbb79da9euVZs2bSRJL774osLCwpSTk6NAIKCsrCxNn87NgQAA4Kw6Dyjz58//1v2RkZGaNm2apk2bVtdvDQAAGgk+iwcAAFiHgAIAAKxDQAEAANapl8/iAVA7RtKBsgRnHQCaOgIKYIEzJlK3f/F6qMsAAGtwiQcAAFiHgAIAAKxDQAEs4HYF9EHnMfqg8xi5XYFQlwMAIcc9KIAFwmR0ffROZx0AmjpGUAAAgHUIKAAAwDoEFAAAYB0CCgAAsA4BBQAAWIeneABLHKnwhLoEALAGAQWwwGkTqV7b5oW6DACwBpd4AACAdQgoAADAOgQUwAJuV0Dzr35K869+iqnuAUDcgwJYIUxGvVtscdYBoKljBAUAAFiHgAIAAKxDQAEAANYhoAAAAOsQUAAAgHV4igewxKkqd6hLAABrEFAAC5w2kUrb8sdQlwEA1uASDwAAsA4BBQAAWIeAAljA7SrT6x0m6vUOE+V2lYW6HAAIOe5BASwQpird4fncWQeApo4RFAAAYB0CCgAAsE5IA8q0adPUoUMHRUZGKiMjQ+vXrw9lOQAAwBIhuwflrbfeUl5enmbOnKmMjAy99NJLysrK0o4dO5SQkBCqsgAAFuvw1KJQl1Bre6dkh7qEBilkAeWFF17QyJEj9cgjj0iSZs6cqUWLFun111/XU089FaqyAACoUw0xVEmhD1YhCShlZWUqKipSfn6+sy0sLEyZmZkqLCw8p30gEFAgEHBel5aWSpL8fn+91FcVOFUvxwUupNJ1Rv7/+29XGTilKsOTPKh/7cYsCHUJsFh9/I6tOaYx5qJtQxJQvvrqK1VWVioxMTFoe2Jior744otz2hcUFGjSpEnnbE9NTa23GoErLdZZGxbCKgCgWuxL9Xfs48ePKzY29lvbNIh5UPLz85WXl+e8rqqq0tGjR9WqVSu5XK5LOqbf71dqaqr2798vj8dTV6VajT7T58asKfabPtPnhsYYo+PHjyslJeWibUMSUFq3bq3w8HCVlJQEbS8pKVFSUtI57d1ut9zu4E96jYuLq5NaPB5Pgz/htUWfm4am2GepafabPjcNjaXPFxs5qRGSx4wjIiLUq1cvrVixwtlWVVWlFStWyOv1hqIkAABgkZBd4snLy9Pw4cN100036ZZbbtFLL72kkydPOk/1AACApitkAeX+++/Xl19+qQkTJsjn86lnz55asmTJOTfO1he3262nn376nEtHjRl9bhqaYp+lptlv+tw0NMU+S5LLfJdnfQAAAK4gPosHAABYh4ACAACsQ0ABAADWIaAAAADrWBtQVq9erbvuukspKSlyuVx6//33g/a/++676t+/vzObbHFxcdD+o0eP6vHHH1eXLl0UFRWldu3a6ec//7nzOT41XC7XOcv8+fOD2qxcuVI33nij3G63OnfurDlz5pxT77Rp09ShQwdFRkYqIyND69evv+J9lqS+ffue059HH300qM2+ffuUnZ2t6OhoJSQkaOzYsaqoqGiQfd67d+95z6HL5dKCBWc/Z8Sm83yxfpeXl2vcuHFKT09XTEyMUlJSNGzYMB08eDDoGEePHtXQoUPl8XgUFxenESNG6MSJE0FtNm3apO9///uKjIxUamqqpk6dek4tCxYsUNeuXRUZGan09HQtXrw4aL8xRhMmTFBycrKioqKUmZmpnTt3XvE+7927VyNGjFDHjh0VFRWlTp066emnn1ZZWVlQm/Od67Vr1zbIPktShw4dzunPlClTgto0pvO8cuXKC35Pb9iwQVLDOs+SNHHiRHXt2lUxMTG66qqrlJmZqXXr1gW1aWjfz1eEsdTixYvNv//7v5t3333XSDLvvfde0P7f//73ZtKkSea1114zkszGjRuD9m/evNkMHjzYfPjhh2bXrl1mxYoV5pprrjE5OTlB7SSZ2bNnm0OHDjnL6dOnnf3/+7//a6Kjo01eXp7Ztm2befnll014eLhZsmSJ02b+/PkmIiLCvP7662br1q1m5MiRJi4uzpSUlFzRPhtjzA9+8AMzcuTIoP6UlpY6+ysqKkz37t1NZmam2bhxo1m8eLFp3bq1yc/Pb5B9rqioCOrroUOHzKRJk0yLFi3M8ePHnXY2neeL9fvYsWMmMzPTvPXWW+aLL74whYWF5pZbbjG9evUKOsaAAQPM9ddfb9auXWv+/Oc/m86dO5shQ4Y4+0tLS01iYqIZOnSo2bJli3nzzTdNVFSUeeWVV5w2//3f/23Cw8PN1KlTzbZt28z48eNN8+bNzebNm502U6ZMMbGxseb99983f/3rX82gQYNMx44dg/79rkSfP/74Y/Pwww+bpUuXmt27d5sPPvjAJCQkmF/+8pdOmz179hhJZvny5UHnuqysrEH22Rhj2rdvbyZPnhzUnxMnTjj7G9t5DgQC53xP/+u//qvp2LGjqaqqMsY0rPNsjDFz5841y5YtM7t37zZbtmwxI0aMMB6Pxxw+fNhp09C+n68EawPK153vhNeo+Y96vl/W3/T222+biIgIU15e/p2ObYwxTz75pLnuuuuCtt1///0mKyvLeX3LLbeY3Nxc53VlZaVJSUkxBQUFF63pQi61zz/4wQ/ML37xiwsed/HixSYsLMz4fD5n24wZM4zH4zGBQMAY0/D6/E09e/Y0P/nJT77zsY0JXZ+/S23GGLN+/Xojyfztb38zxhizbds2I8ls2LDBafPxxx8bl8tl/v73vxtjjJk+fbq56qqrnPNqjDHjxo0zXbp0cV7fd999Jjs7O+i9MjIyzE9/+lNjjDFVVVUmKSnJPPfcc87+Y8eOGbfbbd58881L67C5tD6fz9SpU03Hjh2d19/l/0lD63P79u3Niy++eMGvaeznuayszLRp08ZMnjzZ2dbQz3NpaakTsIxp+N/P9cXaSzz1obS0VB6PR82aBc9Pl5ubq9atW+uWW27R66+/HvQx0IWFhcrMzAxqn5WVpcLCQklSWVmZioqKgtqEhYUpMzPTaXOlzZ07V61bt1b37t2Vn5+vU6dOOfsKCwuVnp4eNCFeVlaW/H6/tm7d6rRpaH2uUVRUpOLiYo0YMeKcfQ35PJeWlsrlcjmfQVVYWKi4uDjddNNNTpvMzEyFhYU5Q8eFhYXq06ePIiIigvq0Y8cO/eMf/3DafFu/9+zZI5/PF9QmNjZWGRkZ9d7vb/b5Qm3i4+PP2T5o0CAlJCTo9ttv14cffhi0ryH2ecqUKWrVqpVuuOEGPffcc0GXZBv7ef7www915MiR884y3hDPc1lZmV599VXFxsbq+uuvd2pt7N/Pl6JBfJpxXfjqq6/0zDPPaNSoUUHbJ0+erDvuuEPR0dH65JNP9LOf/UwnTpzQz3/+c0mSz+c7Z3bbxMRE+f1+nT59Wv/4xz9UWVl53jZffPFF/XbqPB588EG1b99eKSkp2rRpk8aNG6cdO3bo3XfflXTh/tTs+7Y2tvb562bNmqVu3brp1ltvDdrekM/zmTNnNG7cOA0ZMsT5oDCfz6eEhISgds2aNVN8fHzQeezYseM59dbsu+qqqy7Y768f4+tfd7429eF8ff6mXbt26eWXX9bzzz/vbGvRooX+8z//U7fddpvCwsL0xz/+Uffcc4/ef/99DRo0SNKFz7Wtff75z3+uG2+8UfHx8VqzZo3y8/N16NAhvfDCC069jfk8z5o1S1lZWWrbtq2zrSGe54ULF+qBBx7QqVOnlJycrGXLlql169ZOLY35+/lSNYmA4vf7lZ2drbS0NE2cODFo369//Wtn/YYbbtDJkyf13HPPOb+4GpqvB7D09HQlJyerX79+2r17tzp16hTCyurf6dOnNW/evKBzWqOhnufy8nLdd999MsZoxowZoS7nivguff773/+uAQMG6J//+Z81cuRIZ3vr1q2Vl5fnvL755pt18OBBPffcc84vLht9W5+/3p8ePXooIiJCP/3pT1VQUNCgpz7/Luf5wIEDWrp0qd5+++2g7Q3xPP/whz9UcXGxvvrqK7322mu67777tG7dunOCCc5q9Jd4jh8/rgEDBqhly5Z677331Lx5829tn5GRoQMHDigQCEiSkpKSVFJSEtSmpKREHo9HUVFRat26tcLDw8/bJikpqW47cwkyMjIkVf+1KV24PzX7vq2N7X1+5513dOrUKQ0bNuyibRvCea75Af63v/1Ny5YtC/oLMykpSYcPHw5qX1FRoaNHj170PNbs+7Y2X9//9a87X5u69G19rnHw4EH98Ic/1K233qpXX331osfMyMhw/v9LDbPPX5eRkaGKigrt3bvXqbcxnmdJmj17tlq1avWdQoft5zkmJkadO3dW7969NWvWLDVr1kyzZs1yammM38+Xq1EHFL/fr/79+ysiIkIffvihIiMjL/o1xcXFuuqqq5y/TLxer1asWBHUZtmyZfJ6vZKkiIgI9erVK6hNVVWVVqxY4bQJpZrHcpOTkyVV92fz5s1B3ww1PyDS0tKcNg2xz7NmzdKgQYPUpk2bi7a1/TzX/ADfuXOnli9frlatWgXt93q9OnbsmIqKipxtn376qaqqqpxQ6vV6tXr1apWXlwf1qUuXLrrqqqucNt/W744dOyopKSmojd/v17p16+q83xfrs1Q9ctK3b1/16tVLs2fPVljYxX+EFRcXO///pYbX528qLi5WWFiY85d3YzzPUvXjsLNnz9awYcMu+oelZPd5Pp+qqirnD6TG+P1cJ0J4g+63On78uNm4caPZuHGjkWReeOEFs3HjRudO7yNHjpiNGzeaRYsWGUlm/vz5ZuPGjebQoUPGmOq7pDMyMkx6errZtWtX0KNoFRUVxhhjPvzwQ/Paa6+ZzZs3m507d5rp06eb6OhoM2HCBKeOmsdPx44da7Zv326mTZt23sdP3W63mTNnjtm2bZsZNWqUiYuLC3pS5kr0edeuXWby5Mnm888/N3v27DEffPCBufrqq02fPn2c96h5zLh///6muLjYLFmyxLRp0+a8jxk3hD7X2Llzp3G5XObjjz8+5z1sO88X63dZWZkZNGiQadu2rSkuLg76v/v1O/gHDBhgbrjhBrNu3Trz2WefmWuuuSboscRjx46ZxMRE89BDD5ktW7aY+fPnm+jo6HMeS2zWrJl5/vnnzfbt283TTz993scS4+LizAcffGA2bdpk7r777kt6LPFy+3zgwAHTuXNn069fP3PgwIGgNjXmzJlj5s2bZ7Zv3262b99ufvOb35iwsDDz+uuvN8g+r1mzxrz44oumuLjY7N692/zhD38wbdq0McOGDXPeo7Gd5xrLly83ksz27dvPeY+GdJ5PnDhh8vPzTWFhodm7d6/5/PPPzSOPPGLcbrfZsmWLc4yG9v18JVgbUP70pz8ZSecsw4cPN8YYM3v27PPuf/rpp7/16yWZPXv2GGOqH+Pq2bOnadGihYmJiTHXX3+9mTlzpqmsrDynlp49e5qIiAhz9dVXm9mzZ59T78svv2zatWtnIiIizC233GLWrl17xfu8b98+06dPHxMfH2/cbrfp3LmzGTt2bNA8KMYYs3fvXjNw4EATFRVlWrdubX75y18GPXrdkPpcIz8/36Smpp5z7oyx7zxfrN81j1Ceb/nTn/7kHOPIkSNmyJAhpkWLFsbj8ZhHHnkkaO4XY4z561//am6//XbjdrvN9773PTNlypRzann77bfNtddeayIiIsx1111nFi1aFLS/qqrK/PrXvzaJiYnG7Xabfv36mR07dlzxPl/o/8LX/86aM2eO6datm4mOjjYej8fccsstZsGCBQ22z0VFRSYjI8PExsaayMhI061bN/Pss8+aM2fOBL1PYzrPNYYMGWJuvfXW875HQzrPp0+fNj/+8Y9NSkqKiYiIMMnJyWbQoEFm/fr1QcdoaN/PV4LLmK89awkAAGCBRn0PCgAAaJgIKAAAwDoEFAAAYB0CCgAAsA4BBQAAWIeAAgAArENAAQAA1iGgAAAA6xBQAACAdQgoAADAOgQUAABgHQIKAACwzv8HlqGX55N1yu0AAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "checking contiguity of final HDs\n",
      "working on HD 1600 out of 8941\n",
      "working on HD 7200 out of 8941\n",
      "all done checking HD and complement contiguity for all 8941 HDs\n"
     ]
    }
   ],
   "source": [
    "patchedUse, unpUse = [0.]*nUnits, [0.]*nUnits\n",
    "for t in popHDlist:\n",
    "    for u in HDunitList[t]:\n",
    "        patchedUse[u] += HDweight[t] * nDistricts\n",
    "    for u in ready2patchList[t]:\n",
    "        unpUse[u] += HDweight[t] * nDistricts\n",
    "plt.hist(patchedUse,bins=50, label=\"patched\",histtype=\"step\")\n",
    "plt.hist(unpUse, bins=50, label=\"unpatched\",histtype=\"step\")\n",
    "plt.legend()\n",
    "plt.show()\n",
    "patchedAvg, patchedSD = getWeightedAvgAndSD(patchedUse,unitPop)\n",
    "unpatchedAvg, unpatchedSD = getWeightedAvgAndSD(unpUse,unitPop)\n",
    "print(\"unpatched, patched use avgs are\",r5(unpatchedAvg), r5(patchedAvg),\"and their SDs are\",r5(unpatchedSD), r5(patchedSD) )\n",
    "print(\"And here is the pop distro\")\n",
    "plt.hist([HDvPop[t] for t in popHDlist])\n",
    "plt.axvline(aDP, ls=\"--\",color=\"orange\")\n",
    "plt.show()\n",
    "print(\"checking contiguity of final HDs\")\n",
    "for t in popHDlist:\n",
    "    if t%800 == 0:\n",
    "        print(\"working on HD\",t,\"out of\",nHDs)\n",
    "    unbroken, noEnclave, sList, eList = enclaveCheck(HDunitList[t], unitNbrs)  #these HDunitLists now appear to be sets\n",
    "    if not unbroken or not noEnclave:\n",
    "        print(\"uh-oh, HD\",t,\"has contiguity, complement-contiguity of\",unbroken, noEnclave)\n",
    "print(\"all done checking HD and complement contiguity for all\",nHDs,\"HDs\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 279,
   "id": "4761a8b7-c56a-4c75-92cd-51a27f02d482",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "updating our unitUse, underpopped and overpopped lists\n",
      "unit use histogram\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "the number of stillUnder and stillOver HDs is 0 8\n"
     ]
    }
   ],
   "source": [
    "print(\"updating our unitUse, underpopped and overpopped lists\")\n",
    "unitUse = [0.]*nUnits\n",
    "stillUnder, stillOver = list(), list()\n",
    "for t in popHDlist:\n",
    "    aDP = countyADP[countyNo[t]]\n",
    "    minDistrictPop, maxDistrictPop = 0.95*aDP, 1.05*aDP\n",
    "    for u in HDunitList[t]:\n",
    "        unitUse[u] += nDistricts * HDweight[t]\n",
    "    if hasSplitUnit[t] == 1:\n",
    "        unitUse[splitUnitNo[t]] -= (1. - splitUnitFrac[t]) * nDistricts * HDweight[t]\n",
    "    if HDvPop[t] < minDistrictPop:\n",
    "        stillUnder.append(t)\n",
    "    if HDvPop[t] > maxDistrictPop:\n",
    "        stillOver.append(t)\n",
    "print(\"unit use histogram\")\n",
    "plt.hist(unitUse, weights = unitPop,bins=50)\n",
    "plt.show()\n",
    "print(\"the number of stillUnder and stillOver HDs is\",len(stillUnder),len(stillOver) )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 280,
   "id": "c3e4c7ca-ea01-4562-99b4-e1657a5fe7c3",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Not sure how we got some overpoppped.  correct, pls\n",
      "Continuing with narrowing the distro.  This loop: remove overused units from overpopped HDs\n",
      "Let's now square down the 8 overPopped HDs to within 5984\n",
      "working on squaring down HD 6759 time is now 0\n",
      "We have attempted to address underpop in a total of 8 HDs\n",
      "Here is a scatterplot of original to final pop\n"
     ]
    },
    {
     "data": {
      "image/png": "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fXrVaceOHWE1ERERyszMtGqaU19fr0AgEDYBAIDOqU2DUF1dnfLz85WbmyuXy9Xi9Xw+X1gIkmTN+3y+K9YEAgF98skn+uijj9TQ0NBsTeM2mjN79my53W5rSk5ObnG/AQDAzaXNglAwGFROTo6MMVq0aFFb7ea6mz59uvx+vzUdPXq0o7sEAADaSNe22GhjCDp8+LA2b97cqqtBkuTxeJo83XXy5EmrrfF/G5ddWuNyudStWzd16dJFXbp0abamcRvNcTqdcjqdreovAAC4OV33K0KNIWj//v3auHGj4uPjW72NjIwM7d69O+zprqKiIrlcLt13331WzaZNm8LWKyoqUkZGhiQpMjJSDz74YFhNKBTSpk2brBoAAGBvrb4idPbsWR04cMCar66uVkVFheLi4pSUlKTHHntMZWVlWrt2rRoaGqz7ceLi4hQZGSnp098Iqqmp0ZEjR9TQ0KCKigpJUu/evXXLLbdo5MiRuu+++/TEE0+osLBQPp9PL774op555hnras3TTz+tX/3qV3rhhRf0r//6r9q8ebNWrFihdevWWX2bNm2aJk6cqEGDBmnw4MH65S9/qXPnzunJJ5/8wgMGAAA6kdY+jrZlyxYjqck0ceJEU11d3WybJLNlyxZrGxMnTrxqzaFDh8yjjz5qunXrZnr06GGee+45EwwGm/RlwIABJjIy0tx1111m6dKlTfr72muvmTvuuMNERkaawYMHmw8++KBVx8vj8wAA3Hxaev52GGNMe4evm0kgEJDb7Zbf72/1vU4AAKBjtPT8zbvGAACAbRGEAACAbRGEAACAbRGEAACAbRGEAACAbRGEAACAbRGEAACAbRGEAACAbRGEAACAbRGEAACAbRGEAACAbRGEAACAbRGEAACAbRGEAACAbRGEAACAbRGEAACAbRGEAACAbRGEAACAbRGEAACAbRGEAACAbRGEAACAbRGEAACAbRGEAACAbRGEAACAbRGEAACAbRGEAACAbRGEAACAbRGEAACAbRGEAACAbRGEAACAbRGEAACAbRGEAACAbRGEAACAbbU6CBUXF2vMmDHyer1yOBxas2aN1RYMBpWfn6+0tDRFR0fL6/VqwoQJOn78eNg2ampqNH78eLlcLsXExCgvL09nz54Nq9m1a5eGDRumqKgoJScnq7CwsElfVq5cqb59+yoqKkppaWlav359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s59ddhsTJkxQVVWV3nrrLe3evVvf+MY3lJOTo/Lycqtm/Pjx2rNnj4qKirR27VoVFxfrqaeestoDgYBGjhypXr16aceOHZo7d65mzpypJUuWWDVbt25Vbm6u8vLyVF5eruzsbGVnZ6uysrK1hw0AADojcw0kmdWrVzfbVl1dbSSZ8vLyJm3R0dHmd7/7XdiyuLg485vf/MYYY8zevXuNJPPhhx9a7e+8845xOBzm2LFjxhhjFi5caGJjY019fb1Vk5+fb1JTU635nJwcM3r06LD9pKenm8mTJ7f4GP1+v5Fk/H5/i9cBAAAdq6Xn7w65R2jIkCFavny5ampqFAqFtGzZMtXV1enhhx+WJJWUlCgmJkaDBg2y1snMzFRERIRKS0utmuHDhysyMtKqycrKUlVVlU6fPm3VZGZmhu07KytLJSUll+1bfX29AoFA2AQAADqnDglCK1asUDAYVHx8vJxOpyZPnqzVq1erd+/ekj69hyghISFsna5duyouLk4+n8+qSUxMDKtpnL9aTWN7c2bPni23221NycnJ13awAADghtUhQaigoEC1tbXauHGjtm/frmnTpiknJ0e7d+/uiO6EmT59uvx+vzUdPXq0o7sEAADaSNf23uHBgwf1q1/9SpWVlerXr58kqX///vrLX/6iBQsWaPHixfJ4PDp16lTYehcvXlRNTY08Ho8kyePx6OTJk2E1jfNXq2lsb47T6ZTT6by2gwQAADeFdr8idP78+U93HBG+6y5duigUCkmSMjIyVFtbqx07dljtmzdvVigUUnp6ulVTXFysYDBo1RQVFSk1NVWxsbFWzaZNm8L2U1RUpIyMjOt/YAAA4KbT6iB09uxZVVRUWL8PVF1drYqKCh05ckTSp7//U1FRob1790qSqqqqVFFRYd2X07dvX/Xu3VuTJ0/Wtm3bdPDgQc2bN09FRUXKzs6WJN17770aNWqUJk2apG3btun999/Xs88+q8cff1xer1eSNG7cOEVGRiovL0979uzR8uXL9corr2jatGlWX6dMmaINGzZo3rx52rdvn2bOnKnt27fr2Wef/cIDBgAAOpHWPo62ZcsWI6nJNHHiRGOMMUuXLm22fcaMGdY2/va3v5lvfOMbJiEhwXTv3t18+ctfbvI4/ccff2xyc3PNLbfcYlwul3nyySfNmTNnwmp27txphg4dapxOp+nZ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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(\"Not sure how we got some overpoppped.  correct, pls\")\n",
    "#SQUARING DOWN\n",
    "print(\"Continuing with narrowing the distro.  This loop: remove overused units from overpopped HDs\")\n",
    "HDnShedUnits = [0]*nHDs\n",
    "overPoppedList, stillOverPoppedList = list(), list()\n",
    "startTime = time.time()\n",
    "for t,pop in enumerate(HDvPop):\n",
    "    aDP = countyADP[countyNo[t]]\n",
    "    minDistrictPop, maxDistrictPop = 0.95 * aDP, 1.05 * aDP\n",
    "    if pop > maxDistrictPop and t in popHDlist:\n",
    "        overPoppedList.append(t)\n",
    "\n",
    "maxGap = aDP - minDistrictPop   \n",
    "print(\"Let's now square down the\",len(overPoppedList),\"overPopped HDs to within\", int(maxGap))   \n",
    "for ii,t in enumerate(overPoppedList):\n",
    "    aDP = countyADP[countyNo[t]]\n",
    "    minDistrictPop, maxDistrictPop = 0.95 * aDP, 1.05 * aDP\n",
    "    if ii%200 == 0:\n",
    "        print(\"working on squaring down HD\",t,\"time is now\",int(time.time()-startTime))\n",
    "    unbroken, noEnclave, sPL, ePL = enclaveCheck(HDunitList[t],unitNbrs)\n",
    "    if not (unbroken and noEnclave):\n",
    "        print(\"SKIPPING shedding attempt on overpopped HD\",t,\"with pop\",HDvPop[t],\"because it was not legal to start\")\n",
    "    else:\n",
    "        excess = HDvPop[t] - aDP\n",
    "        origExcess = excess\n",
    "        HDboundaryList, HDboundaryScore = list(), list()  #these will be dynamic lists of the overused border units to jettison\n",
    "        #distList = [hdCP[t].distance(unitCP[u]) for u in HDunitList[t] ]\n",
    "        starterU = homeU[t] #HDunitList[t][distList.index(np.min(distList))] #update from vanillaHD\n",
    "        barredSet = barredJettisonSet.union({starterU})\n",
    "        for u in set(HDunitList[t]).difference(barredSet):\n",
    "            isBoundary = False\n",
    "            for uu in unitNbrs[u]:\n",
    "                if uu not in HDunitList[t]:\n",
    "                    isBoundary = True\n",
    "                    break\n",
    "            if isBoundary and HDvPop[t] - unitPop[u] > aDP - maxGap:  #shedding this unit won't send us too far under targetpop\n",
    "                HDboundaryList.append(u)\n",
    "                HDboundaryScore.append((1. - unitUse[u]) - unitCP[u].distance(hdCP[t]) / avgDist[t])  #low-score = bias toward far, overused\n",
    "        currList = HDunitList[t].copy()\n",
    "        shedList, stillGoing = list(), True\n",
    "        while excess > maxGap and len(HDboundaryList) > 0 and stillGoing:   #shed the highest-scoring neighboring overused unit until we've roughly squared the HDpop\n",
    "            idx, i, notYetPicked = np.argsort(HDboundaryScore), 0, True\n",
    "            while i < len(HDboundaryScore) and notYetPicked and stillGoing:        \n",
    "                listNo = idx[i]   #low (large negative) score is preferred to shed\n",
    "                unitNoToShed = HDboundaryList[listNo]  # attempt to shed this unit ...\n",
    "                tryList = list(set(currList).difference( {unitNoToShed} ) )\n",
    "                unbroken, noEnclave, sPL, ePL = enclaveCheck(tryList,unitNbrs) \n",
    "                if unbroken and noEnclave:             #... if that won't eff up contiguity\n",
    "                    notYetPicked = False\n",
    "                else:\n",
    "                    i +=1\n",
    "            if notYetPicked:\n",
    "                stillGoing = False  #can't drop any more units without creating an enclave\n",
    "                print(\"can't drop any more units to HD\",t,\"without creating an enclave\")\n",
    "            else: #add this eligible unit\n",
    "                shedList.append(unitNoToShed)\n",
    "                excess -= unitPop[unitNoToShed]        \n",
    "                del currList[currList.index(unitNoToShed) ]\n",
    "                del HDboundaryList[listNo]\n",
    "                del HDboundaryScore[listNo]\n",
    "                for u in unitNbrs[unitNoToShed]:      # ... and ID any neighboring units that will now be on boundary after we shed this unit\n",
    "                    if u in currList and u not in HDboundaryList and (unitPop[u] <= excess + maxGap and u not in barredSet): \n",
    "                        HDboundaryList.append(u)\n",
    "                        HDboundaryScore.append( (1. - unitUse[u]) - unitCP[u].distance(hdCP[t]) / avgDist[t] )  #low-score, bias toward far & overused       \n",
    "                for uu in HDboundaryList.copy():\n",
    "                    if unitPop[uu] > excess + maxGap:  #checking to see if the latest pop change DQ's any large units on current boundary\n",
    "                        del HDboundaryScore[HDboundaryList.index(uu)]\n",
    "                        del HDboundaryList[HDboundaryList.index(uu)]   \n",
    "        for u in shedList:\n",
    "            unitUse[u] -= HDweight[t] * nDistricts\n",
    "        HDunitList[t], HDvPop[t] = currList.copy(), np.sum( [unitPop[u] for u in currList ] )    \n",
    "        if HDvPop[t] < minDistrictPop:\n",
    "            print(\"Oops! HD\",t,\"now has undershot pop =\",int(HDvPop[t]),\"not\",int(aDP),\"after shedding\",\n",
    "                 np.sum([unitPop[u] for u in shedList]) )        \n",
    "        if HDvPop[t] < minDistrictPop:\n",
    "            stillOverPoppedList.append(t)\n",
    "        HDnShedUnits[t] = -1 * len(shedList)\n",
    "        if homeU[t] not in HDunitList[t]:\n",
    "            print(\"WARNING: we lost the home unit\",homeU[t],\"from HD\",HD)\n",
    "            lostHomeUlist.append(t)\n",
    "            \n",
    "print(\"We have attempted to address underpop in a total of\",len(overPoppedList),\"HDs\")\n",
    "if len(stillOverPoppedList) > 0:\n",
    "    print(\"... but we got stuck in\",len(stillOverPoppedList))\n",
    "print(\"Here is a scatterplot of original to final pop\")\n",
    "plt.scatter([ampedHDpop[t] for t in overPoppedList], [HDvPop[t] for t in overPoppedList])\n",
    "plt.axhline(aDP, 0.9*aDP, 1.1*aDP, ls=\"--\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 281,
   "id": "4c6a3cc1-5f53-4c23-b904-0975d8afdcdf",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "updating our unitUse, underpopped and overpopped lists\n",
      "unit use histogram\n"
     ]
    },
    {
     "data": {
      "image/png": "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rrtaPWZ7ao85NqUzj2NrxMTENLlPXC6XIiIiFBYW1qWOY2s0N8em3G7HMRj/3364XY5ja/Ts2VN/8zd/c9sdx+3bt2v+/PnatWtXwK/c2vLravf5sfY24HA4lJiYqMLCQntdfX29CgsL5fF4mnzNn//850ZhISwsTJJkWVarxmxP7THHply5ckVffPGFBg0a1EadB+9W9nl4eLi+//3v68aNG/rtb3+rJ5988pbHbA/tMcemdOZxbA2PxxOwTyTpwIED9j7pasexNZqbY1Nut+MYjNbsh9tdXV2dTp48eVsdx7fffltz587V22+/rZSUlIBtbfr52OJLzXFLtm/fbjmdTisvL8/65JNPrOeff96KjIy0fD6fZVmWNWfOHCsrK8uuz8nJsfr27Wu9/fbb1pdffmn9/ve/t+6++27rqaeeCnrMjtYec/zZz35mHTp0yDp37pz1/vvvW8nJydaAAQOsixcvdvj8LKvlc/zggw+s3/72t9YXX3xhHTlyxHr44Yet4cOHW99++23QY3a09phjVzuOly9ftk6cOGGdOHHCkmS99NJL1okTJ6w//vGPlmVZVlZWljVnzhy7/ssvv7R69eplLV261Pr000+t3NxcKywszCooKLBrutpxbI853u7H0bIsuz4xMdF65plnrBMnTlinT5+2t7///vtWjx49rF//+tfWp59+auXk5Fg9e/a0Tp482aFza9Aec1y9erW1f/9+64svvrCKi4utWbNmWeHh4QE1Hamlc3zrrbesHj16WLm5udaFCxfspbKy0q5pq89HwlInePXVV60hQ4ZYDofDmjhxovXBBx/Y2yZPnmylpaXZH1+/ft1atWqVdffdd1vh4eFWXFyc9U//9E8B34CaG7MztPUcU1NTrUGDBlkOh8P6/ve/b6Wmplqff/55B86osZbM8dChQ9aoUaMsp9Np9e/f35ozZ471v//7vy0aszO09Ry72nH87//+b0tSo6VhXmlpadbkyZMbvWbs2LGWw+Gw7rrrLuuNN95oNG5XOo7tMcfucBybqh86dGhAzc6dO6177rnHcjgc1n333Wfl5+d3zISa0B5zzMjIsP+fRkdHW4899ph1/PjxjpvUd7R0jpMnTzbWN2iLz8cQy/p/fs8BAAAArlkCAAAwISwBAAAYEJYAAAAMCEsAAAAGhCUAAAADwhIAAIABYQkAAMCAsAQAAGBAWAIAADAgLAEAABgQlgAAAAwISwAAAAb/Bwlm7xwZyYrSAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "the number of stillUnder and stillOver HDs is 0 0\n"
     ]
    }
   ],
   "source": [
    "print(\"updating our unitUse, underpopped and overpopped lists\")\n",
    "unitUse = [0.]*nUnits\n",
    "stillUnder, stillOver = list(), list()\n",
    "for t in popHDlist:\n",
    "    aDP = countyADP[countyNo[t]]\n",
    "    minDistrictPop, maxDistrictPop = 0.95*aDP, 1.05*aDP\n",
    "    for u in HDunitList[t]:\n",
    "        unitUse[u] += nDistricts * HDweight[t]\n",
    "    if hasSplitUnit[t] == 1:\n",
    "        unitUse[splitUnitNo[t]] -= (1. - splitUnitFrac[t]) * nDistricts * HDweight[t]\n",
    "    if HDvPop[t] < minDistrictPop:\n",
    "        stillUnder.append(t)\n",
    "    if HDvPop[t] > maxDistrictPop:\n",
    "        stillOver.append(t)\n",
    "print(\"unit use histogram\")\n",
    "plt.hist(unitUse, weights = unitPop,bins=50)\n",
    "plt.show()\n",
    "print(\"the number of stillUnder and stillOver HDs is\",len(stillUnder),len(stillOver) )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 282,
   "id": "01dd05b2-767f-4379-b202-cf95e8489380",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "let's do a little more underpatching if we can, after saving\n"
     ]
    }
   ],
   "source": [
    "print(\"let's do a little more underpatching if we can, after saving\")\n",
    "currHDlist = [HDunitList[t].copy() for t in range(nHDs) ]\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 284,
   "id": "419a7a74-0386-4b55-a86a-693509edb260",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Here, we exchange in under-used, THEN shed over-used\n",
      "Currently, we will stop patching when the overall sd of usage is less than 0.055\n"
     ]
    },
    {
     "name": "stdin",
     "output_type": "stream",
     "text": [
      "enter updated maxSD value 0.038\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "this would currently cover a total of 119 units\n"
     ]
    },
    {
     "name": "stdin",
     "output_type": "stream",
     "text": [
      "enter updated number of units to try boosting usage 10\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "there are currently 170 units out of 904 with usage below 0.98\n",
      "maxExchangePop is currently 0.15 fraction of avgDistrictPop\n",
      "Let's further tighten the distro with exchanges up to 5933\n",
      "current avg and SD of unit usage are 0.98835 0.03993 . Now trying to increase up to 10 units' underusage\n",
      "all done trying2increase usage of unit 892 final usage = 0.98805 0 sec elapsed 11 1 complete, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98851 0.03913\n",
      "all done trying2increase usage of unit 110 final usage = 0.98828 0 sec elapsed 12 1 complete, failed patches, couldn't start= 0\n",
      "current avg and SD of usage are 0.98877 0.03757\n"
     ]
    }
   ],
   "source": [
    "#redo FIRST PATCHING BLOCK - boosting underuse.  Suppresses long strings.  For some states (e.g. MA), do overused first. MA:over-und-over-und\n",
    "#  When running Ohio the first time, 20 units took 7800 seconds\n",
    "print(\"Here, we exchange in under-used, THEN shed over-used\")\n",
    "maxSD = 0.055  #0.07  #0.05   #adjust down if distro already tight\n",
    "print(\"Currently, we will stop patching when the overall sd of usage is less than\",maxSD)\n",
    "maxSD = float(input(\"enter updated maxSD value\"))\n",
    "stopMinUse = 1. - maxSD\n",
    "#print(\"we will stop patching on individual underused units when their usage exceeds\",r5(stopMinUse))\n",
    "maxNtries = 0\n",
    "for u in range(nUnits):\n",
    "    if unitUse[u] < stopMinUse:\n",
    "        maxNtries +=1\n",
    "print(\"this would currently cover a total of\",maxNtries,\"units\")\n",
    "maxNtries = int(input(\"enter updated number of units to try boosting usage\"))\n",
    "stopMinUse = 0.98 #float(input(\"enter updated stopMinUse value for ending usage boost on a unit; I reco 0.98\"))\n",
    "nInPlay = 0\n",
    "for u in range(nUnits):\n",
    "    if unitUse[u] < stopMinUse:\n",
    "        nInPlay +=1\n",
    "print(\"there are currently\",nInPlay,\"units out of\",nUnits,\"with usage below\",stopMinUse)\n",
    "nSmallUsers = 5\n",
    "maxExchangePop = 0.15*aDP #blocky for muni\n",
    "print(\"maxExchangePop is currently\",r5(maxExchangePop/aDP),\"fraction of avgDistrictPop\")\n",
    "newMEPratio = 0.05 #float(input(\"Enter updated maxExchangePop fraction\"))\n",
    "maxExchangePop = newMEPratio*aDP\n",
    "debug1 = 10 #int(input(\"enter 1 to print out stats for every patched HD, otherwise enter reporting frequency\"))\n",
    "print(\"Let's further tighten the distro with exchanges up to\",int(maxExchangePop)) #1/25/24\n",
    "maxGap = 0.05 * aDP #0.9 * np.median(unitPop) \n",
    "currAvg, currSD = getWeightedAvgAndSD(unitUse,unitPop)\n",
    "\n",
    "attemptedSmallUs, startTime = list(), time.time()\n",
    "print(\"current avg and SD of unit usage are\",r5(currAvg), r5(currSD),\". Now trying to increase up to\",maxNtries,\"units' underusage\" )\n",
    "startTime = time.time()\n",
    "while currSD > maxSD and len(attemptedSmallUs) < maxNtries:\n",
    "    #each round, find the (5) most underused not-yet-tried units. Pick the unit w/ most overuse of it + 1-nbrs\n",
    "    idx = np.argsort(unitUse)\n",
    "    idxNo, nSmallFound, smallUsers = 0,0,list()\n",
    "    while nSmallFound < nSmallUsers:\n",
    "        consideredSmallU = idx[idxNo]\n",
    "        if consideredSmallU not in attemptedSmallUs:\n",
    "            smallUsers.append(consideredSmallU)\n",
    "            nSmallFound +=1\n",
    "        idxNo +=1\n",
    "    UUUclusters = [ [b] + unitNbrs[b] for b in smallUsers ]\n",
    "    smallUnderUse = [np.sum([(unitUse[j] - 1.) for j in UUUclusters[i] ]) for i in range(nSmallUsers) ]\n",
    "    smallI = smallUnderUse.index(np.max(smallUnderUse))\n",
    "    UUU = smallUsers[ smallI ]  #pick the unit that centers cluster with least composite use\n",
    "    attemptedSmallUs.append(UUU)  #so we don't try this unit again in a future loop\n",
    "    UUUc = UUUclusters[smallI]  #the list of this unit and ALL its neighbors (to be curated below ...)\n",
    "    if len(attemptedSmallUs) % debug1 == 0:\n",
    "        print(\"begin usage increase for unit\",UUU,\"with usage\",r5(unitUse[UUU]),\". Sec, total UU units tried =\",\n",
    "              int(time.time()-startTime),len(attemptedSmallUs) )\n",
    "    for u in UUUc.copy():\n",
    "        if unitUse[u] > 1.:\n",
    "            UUUc.remove(u)  #...drop any overused neighbors of the primary UUU from the target sheddable cluster\n",
    "    uuuHDs, uuuDists = list(), list()\n",
    "    for t in popHDlist:  #finding all HDs with at least one cluster member on the boundary\n",
    "        if UUU not in HDunitList[t]:\n",
    "            HDadjoinSet = set( getAdjoiners(HDunitList[t],unitNbrs) )\n",
    "            if len(HDadjoinSet.intersection(UUUc) ) > 0: #the UUU or one of its underused 1-neighbors adjoins this HD\n",
    "                uuuHDs.append(t)  #Note: we'll check later if we can contiguously pick up the UUU's cluster\n",
    "                uuuDists.append( unitCP[UUU].distance(hdCP[t]) / avgDist[t] )\n",
    "        idx0 = np.argsort(uuuDists)\n",
    "    hasCandidates = True\n",
    "    if len(uuuDists) == 0:  #this underused unit is buried inside others; skip it\n",
    "        hasCandidates = False\n",
    "        print(\"   Couldn't find any HDs adjacent to underused unit\",UUU)\n",
    "    nPatchSuccess, nPatchFail, nCouldntStart, idxNo = 0,0,0,-1\n",
    "    while unitUse[UUU] < stopMinUse and idxNo < 0.8*len(uuuHDs) and hasCandidates: #arbitrarily only examine 80% closest of HDs\n",
    "        aDP = countyADP[unitCountyNo[UUU]]\n",
    "        maxGap = 0.05 * aDP   #blocky\n",
    "        \n",
    "        excess, giveUpOnShedding = 99*aDP, True  #default = failed swap\n",
    "        idxNo += 1\n",
    "        if idxNo % 20 == 0 and debug1 == 1:\n",
    "            print(\"try to add unit\",UUU,\"from\",abs(idxNo),\"th HD.  Usage up to\",unitUse[UUU] )\n",
    "        t = uuuHDs[idx0[idxNo]]\n",
    "        trySet = set(HDunitList[t]).union(set(UUUc))\n",
    "        contig,complementContig, __, ___ = enclaveCheck(list(trySet), unitNbrs)\n",
    "        loopUUUc = UUUc.copy()  #default; we will add whole cluster\n",
    "        if not (contig and complementContig): #we can't add whole cluster; neighbors may be enclavy.   Try just adding the UUU\n",
    "            trySet = set(HDunitList[t]).union({UUU})\n",
    "            contig,complementContig, __, ___ = enclaveCheck(list(trySet), unitNbrs)\n",
    "            loopUUUc = [UUU]\n",
    "        if contig and complementContig:  #we can at least add the cluster, let's go for more\n",
    "            HDuuuSet = set(loopUUUc).difference(set(HDunitList[t]))  #the subset of the UUU cluster that adjoins (NOT in) this HD\n",
    "            HDuuuCpop = np.sum([unitPop[u] for u in HDuuuSet])\n",
    "            giveUpOnAdding = False            \n",
    "            addCandidates, addUseDists = list(), list()\n",
    "            uuCandidates = getAdjoiners(trySet, unitNbrs)  #any adjoiner can be picked up, even if far from UUUc\n",
    "            for u in uuCandidates:\n",
    "                if HDuuuCpop + unitPop[u] <= maxExchangePop:\n",
    "                    addCandidates.append(u)  #Below's relative scoring of use and distance is a bit arbitrary\n",
    "                    addUseDists.append((unitUse[uu]-1.) + 0.1*unitCP[uu].distance(hdCP[t]) / avgDist[t])  #bias toward close, underused\n",
    "            if len(addCandidates) == 0:\n",
    "                giveUpOnAdding = True\n",
    "            while HDuuuCpop < maxExchangePop and not giveUpOnAdding:\n",
    "                addNneighbors = [len( set(unitNbrs[addC]).intersection(trySet) ) for addC in addCandidates ]\n",
    "                addScores = addUseDists.copy()\n",
    "                for jjj, u in enumerate(addCandidates):\n",
    "                    if addNneighbors[jjj] == 1:\n",
    "                        addScores[jjj] += 0.4321    #discourage growing fingers\n",
    "                #print(\"HDuuuCpop is now\",HDuuuCpop)\n",
    "                idx, ij, notYetPicked = np.argsort(addScores), 0, True\n",
    "                while ij < 0.5*len(addScores) and notYetPicked:\n",
    "                    listNo = idx[ij]   #work from low to high score\n",
    "                    addU = addCandidates[listNo]\n",
    "                    cContig = wontEnclave(addU, list(trySet), unitNbrs, borderUnits)  #4/20/24 sub this in as faster? vs below line\n",
    "                    #contig,cContig, __, ___ = enclaveCheck(list(trySet.union({addU}) ), unitNbrs)  #4/20/24 this is unnec slow\n",
    "                    if cContig: #contig and cContig:\n",
    "                        notYetPicked = False\n",
    "                        HDuuuCpop += unitPop[addU]\n",
    "                        HDuuuSet.add(addU)\n",
    "                        trySet.add(addU)\n",
    "                        del addUseDists[addCandidates.index(addU)]\n",
    "                        del addCandidates[addCandidates.index(addU)]                        \n",
    "                        for uu in list(set(unitNbrs[addU]).difference(trySet) ): \n",
    "                            if uu not in addCandidates and unitPop[uu] + HDuuuCpop < maxExchangePop and unitUse[uu] < 1.01:\n",
    "                                addCandidates.append(uu)\n",
    "                                addUseDists.append( (unitUse[uu]-1.) + 0.1*unitCP[uu].distance(hdCP[t]) / avgDist[t] )\n",
    "                    else:\n",
    "                        ij +=1\n",
    "                if notYetPicked:\n",
    "                    giveUpOnAdding = True  #all candidates would create a discontig, so can't shed any more units\n",
    "            addSet = HDuuuSet.copy()  #we're done building the list of underused units to add to this HD\n",
    "            trySet = set(HDunitList[t]).union(addSet) \n",
    "            excess = np.sum([unitPop[u] for u in trySet]) - aDP\n",
    "            shedCandidates, shedScores, giveUpOnShedding = list(), list(), False\n",
    "            bdryCandidates = getBdryNonEdgers(trySet, unitNbrs)  #new - any boundary unit can be shed, even if far from OUUc\n",
    "            for u in bdryCandidates:\n",
    "                if unitPop[u] <= excess + maxGap:\n",
    "                    shedCandidates.append(u)\n",
    "                    shedScores.append((unitUse[u] - 1.) * unitCP[u].distance(hdCP[t])/avgDist[t])  #bias toward OVERUSED, far\n",
    "            if len(shedCandidates) == 0:\n",
    "                giveUpOnShedding = True\n",
    "            shedSet = set()\n",
    "            while excess > maxGap and not giveUpOnShedding:\n",
    "                #print(\"excess pop is now\",excess,\"for HD\",t)\n",
    "                idx, ij, notYetPicked = np.argsort(shedScores), 0, True\n",
    "                while ij < len(shedScores) and notYetPicked:\n",
    "                    listNo = idx[-1-ij]   #work from high to low score\n",
    "                    shedU = shedCandidates[listNo]\n",
    "                    if shedScores[listNo] <= 0:  #we're delving into the underused; stop adding to shed list\n",
    "                        break\n",
    "                    if excess - unitPop[shedU] >= -1*maxGap:\n",
    "                        contig,cContig, __, ___ = enclaveCheck(list(trySet.difference({shedU}) ), unitNbrs)\n",
    "                        if contig and cContig:\n",
    "                            notYetPicked = False\n",
    "                            excess -= unitPop[shedU]\n",
    "                            trySet.remove(shedU)\n",
    "                            shedSet.add(shedU)\n",
    "                            del shedScores[shedCandidates.index(shedU)]\n",
    "                            del shedCandidates[shedCandidates.index(shedU)]\n",
    "                            newSheddables = set(unitNbrs[shedU]).intersection(trySet)\n",
    "                            for u in newSheddables:\n",
    "                                if excess - unitPop[u] >= -1*maxGap and u not in shedCandidates:\n",
    "                                    shedCandidates.append(u)  #we'll check enclavity if ever picked\n",
    "                                    shedScores.append((unitUse[u] - 1.) * unitCP[u].distance(hdCP[t])/avgDist[t])\n",
    "                            for kkk, u in enumerate(shedCandidates): #checking if this shed eliminates high-pop future sheds ...\n",
    "                                if excess - unitPop[u] < -1*maxGap:\n",
    "                                    del shedScores[kkk]\n",
    "                                    del shedCandidates[kkk]\n",
    "                    ij +=1\n",
    "                if notYetPicked:\n",
    "                    giveUpOnShedding = True  #all shedcandidates would create a discontig, so can't shed enough units to square pop\n",
    "            legitSwap = False\n",
    "            if abs(excess) <= aDP - minDistrictPop:  #must rigorously satisfy pop criterion\n",
    "                contig,cContig, __, ___ = enclaveCheck(list(trySet), unitNbrs) \n",
    "                if contig and cContig:\n",
    "                    legitSwap = True\n",
    "            if legitSwap:\n",
    "                for u in shedSet:\n",
    "                    unitUse[u] -= HDweight[t] * nDistricts\n",
    "                for u in addSet:\n",
    "                    unitUse[u] += HDweight[t] * nDistricts\n",
    "                HDunitList[t] = list(trySet)\n",
    "                HDvPop[t] = np.sum([ unitPop[u] for u in HDunitList[t] ])\n",
    "                nPatchSuccess +=1\n",
    "                #print(\"we added\",addSet,\"and shed units\",shedSet,\"from HD\",t)\n",
    "            else:\n",
    "                nPatchFail +=1\n",
    "        else:  #adding neither the UUU cluster or just the UUU worked; couldn't even start\n",
    "            nCouldntStart +=1\n",
    "            # end of shed + add patching on this HD\n",
    "            #print(\"shed and patched for HD, OUU\",t,OUU)\n",
    "\n",
    "    print(\"all done trying2increase usage of unit\",UUU,\"final usage =\",r5(unitUse[UUU]),int(time.time()-startTime),\"sec elapsed\",\n",
    "         nPatchSuccess,nPatchFail,\"complete, failed patches, couldn't start=\",nCouldntStart)\n",
    "    currAvg, currSD = getWeightedAvgAndSD(unitUse,unitPop)\n",
    "    print(\"current avg and SD of usage are\",r5(currAvg), r5(currSD) )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 285,
   "id": "bf23e050-f929-49d3-9e6e-7cdb85b16f6b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "unpatched, patched use avgs are 0.98902 0.98877 and their SDs are 0.08161 0.03757\n",
      "And here is the pop distro\n"
     ]
    },
    {
     "data": {
      "image/png": "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/va3vzn/Pp++NXj58uX6z//8T0mde3xcEd5rdC8fx44dM5s3bzabN282kszPf/5zs3nzZucK8CNHjpjNmzebVatWGUlm2bJlZvPmzebQoUPn3Ke+cKV5U1OTGTRokMnLyzNbtmwxq1evNj169DClpaVOn7///e8mISHBPPLII2bXrl1mwYIFJjo62qxevdrps2zZMuP1es2SJUvMzp07zdSpU01KSkrQ3UEdrSPGZ+7cuSYpKcm88sorZvfu3WbGjBkmLi7O7Nmzx+kzZswY8+Uvf9lUVlaat956y1x77bVmwoQJzvaamhqTnp5u7rvvPrN9+3azbNkyk5CQYH7xi184ff7617+amJgY88wzz5hdu3aZWbNmmS5dupht27ZZOz4NDQ2mX79+5vbbbzeVlZVmz5495plnnjEej8esWrWqU49PQ0OD+cY3vmF69epltmzZYg4dOuQs/3w3xaU69qefftqkpKSY119/3WzdutXcfffdpm/fvubUqVOujU9HjNEnn3xi+vXrZ0aPHm0++eSToD6dYYw64mfon7V2R10kj084EFAukT//+c9G0lnLpEmTjDHGLF68uNXts2bNOuc+vxhQjDFm//79ZuzYsSY+Pt50797d/PCHPzSNjY1n1TJ06FATGxtrrr76arN48eKz9j1//nxz1VVXmdjYWHPLLbeYd9555yJH4Pw6anzKyspMr169TEJCgsnJyTF/+ctfgrYfOXLETJgwwVxxxRUmKSnJPPjgg+bYsWNBff72t7+ZESNGGK/Xa6688krz9NNPn1Xvyy+/bK677joTGxtrbrjhhqBf8m7oiPH58MMPzfjx401aWppJSEgwN95441m3HXfG8Tn9i6K15c9//vMlP/ZAIGCeeOIJk56ebrxerxk9erSpqqpyZVz+2cWO0bl+xr74/9xIHaOO+Bn6Z+e65T9SxyccPMYY09ZZFwAAADdxDQoAALAOAQUAAFiHgAIAAKxDQAEAANYhoAAAAOsQUAAAgHUIKAAAwDoEFAAAYB0CCgAAsA4BBQAAWIeAAgAArENAAQAA1vn/cyemttxM2VsAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "checking contiguity of final HDs\n",
      "working on HD 1600 out of 8941\n",
      "working on HD 7200 out of 8941\n",
      "all done checking HD and complement contiguity for all 8941 HDs\n"
     ]
    }
   ],
   "source": [
    "patchedUse, unpUse = [0.]*nUnits, [0.]*nUnits\n",
    "for t in popHDlist:\n",
    "    for u in HDunitList[t]:\n",
    "        patchedUse[u] += HDweight[t] * nDistricts\n",
    "    for u in ready2patchList[t]:\n",
    "        unpUse[u] += HDweight[t] * nDistricts\n",
    "plt.hist(patchedUse,bins=50, label=\"patched\",histtype=\"step\")\n",
    "plt.hist(unpUse, bins=50, label=\"unpatched\",histtype=\"step\")\n",
    "plt.legend()\n",
    "plt.show()\n",
    "patchedAvg, patchedSD = getWeightedAvgAndSD(patchedUse,unitPop)\n",
    "unpatchedAvg, unpatchedSD = getWeightedAvgAndSD(unpUse,unitPop)\n",
    "print(\"unpatched, patched use avgs are\",r5(unpatchedAvg), r5(patchedAvg),\"and their SDs are\",r5(unpatchedSD), r5(patchedSD) )\n",
    "print(\"And here is the pop distro\")\n",
    "plt.hist([HDvPop[t] for t in popHDlist])\n",
    "plt.axvline(aDP, ls=\"--\",color=\"orange\")\n",
    "plt.show()\n",
    "print(\"checking contiguity of final HDs\")\n",
    "for t in popHDlist:\n",
    "    if t%800 == 0:\n",
    "        print(\"working on HD\",t,\"out of\",nHDs)\n",
    "    unbroken, noEnclave, sList, eList = enclaveCheck(HDunitList[t], unitNbrs)  #these HDunitLists now appear to be sets\n",
    "    if not unbroken or not noEnclave:\n",
    "        print(\"uh-oh, HD\",t,\"has contiguity, complement-contiguity of\",unbroken, noEnclave)\n",
    "print(\"all done checking HD and complement contiguity for all\",nHDs,\"HDs\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 286,
   "id": "28653c9e-c4f4-4813-aad5-5721074c3b06",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Lets write these UNIT lists to a file\n"
     ]
    }
   ],
   "source": [
    "print(\"Lets write these UNIT lists to a file\")\n",
    "HDvPop = [0. for t in range(nHDs)]  #writing UNIT lists to a file\n",
    "tList = [t for t in range(nHDs)]\n",
    "for t in popHDlist:\n",
    "    for u in HDunitList[t]:\n",
    "        HDvPop[t] += unitPop[u]\n",
    "outDF = pd.DataFrame( {\"tract\":tList,\"HDweight\":HDweight,\"HDvPop\":HDvPop,\"HDunitList\":HDunitList,\n",
    "                      \"centroid x\":hdCPx, \"centroid y\":hdCPy} )\n",
    "outname = STATE+str(int(nHDs))+\"FrankHamMuniPatched.csv\" #\"contigUnpatchedB.csv\"\n",
    "outpath = \"2024state_HD_output/\"+outname\n",
    "outDF.to_csv(outpath)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 287,
   "id": "439e521a-55ba-43f4-a206-9654a4da886c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdin",
     "output_type": "stream",
     "text": [
      "enter 1 if there were NO fragmented VTDs 0\n"
     ]
    }
   ],
   "source": [
    "noFrag = int(input(\"enter 1 if there were NO fragmented VTDs\"))\n",
    "if noFrag == 1:\n",
    "    nFragmentedVTDs,fragmentedVTDs = 0, list()\n",
    "outName = \"FrankHamMuniPatchedVTDs\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 288,
   "id": "10c8ecf3-c285-43c9-bf73-de23dffa3fbd",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "after above patching, write these contiguous lists to a file, converting to vtd lists\n"
     ]
    },
    {
     "name": "stdin",
     "output_type": "stream",
     "text": [
      "enter 1 if there were NO fragmented VTDs 0\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "working on full or partial VTD master list for unit 0\n",
      "Now converting unit lists to vtd lists for all HDs\n"
     ]
    }
   ],
   "source": [
    "\n",
    "#THIS WORKS FOR BOTH VTD- AND UNIT-BASED (FRAG VTD) -- **NOTE: DOES NOT ADD IN CUT DISTRICTS AND REBALANCE WEIGHTS\n",
    "print(\"after above patching, write these contiguous lists to a file, converting to vtd lists\")\n",
    "noFrag = int(input(\"enter 1 if there were NO fragmented VTDs\"))  #for simple states where units are at least whole vtd's\n",
    "tList = [t for t in range(nHDs)]\n",
    "vtdList = [list() for t in range(nHDs)]\n",
    "unitVTDlist, unitFragVTDlist, unitVTDfrac = [list() for u in range(nUnits)], [list() for u in range(nUnits)], [list() for u in range(nUnits)]\n",
    "unitFullVTDlist, unitPartialVTDlist =       [list() for u in range(nUnits)], [list() for u in range(nUnits)]\n",
    "\n",
    "for u in range(nUnits):\n",
    "    if u %2000 == 0:\n",
    "        print(\"working on full or partial VTD master list for unit\",u)\n",
    "    if allUnits[u] % 1 == 0.5 :\n",
    "        c = int(allUnits[u])\n",
    "        unitVTDlist[u] = countyTractList[c].copy()\n",
    "        unitFullVTDlist[u] = countyTractList[c].copy()\n",
    "    if allUnits[u] % 1 == 0.25 :\n",
    "        CCBnumber = int(allUnits[u])\n",
    "        for c in CCBlist[CCBnumber] :\n",
    "            unitVTDlist[u] += countyTractList[c]\n",
    "            unitFullVTDlist[u] += countyTractList[c]\n",
    "    if allUnits[u] % 1 == 0:\n",
    "        if noFrag == 1:\n",
    "            unitVTDlist[u].append(allUnits[u] )\n",
    "            for i,vv in enumerate(surrounders):\n",
    "                if allUnits[u] == vv:\n",
    "                    unitVTDlist[u].append(surroundedVTDs[i])\n",
    "        else:\n",
    "            unitFragVTDlist[u].append(allUnits[u])\n",
    "            for i,vv in enumerate(surrounders):\n",
    "                if allUnits[u] == vv:\n",
    "                    unitFragVTDlist[u].append(surroundedVTDs[i])\n",
    "            vtdFrac = [0. for V in range(nVTDs)]\n",
    "            for vv in unitFragVTDlist[u]:\n",
    "                V = parentVTDno[vv]\n",
    "                if len(VTDchildren[V]) == 1:  #nonfragmented vtd\n",
    "                    vtdFrac[V] = 1.\n",
    "                else:\n",
    "                    if tractPop[V] > 0:\n",
    "                        vtdFrac[V] += fragVTDgeom[vv].area / vtdGeom[V].area #fragVTDpop[uu] / tractPop[v]  #we overwrote the frag pops earlier; can't use\n",
    "            for v in range(nVTDs):\n",
    "                if vtdFrac[v] > 0.0001:\n",
    "                    if vtdFrac[v] > 0.999:\n",
    "                        unitFullVTDlist[u].append(v)\n",
    "                    else:\n",
    "                        unitPartialVTDlist[u].append(v)\n",
    "                        unitVTDfrac[u].append(vtdFrac[v] )\n",
    "                                    \n",
    "HDpartialVTDlist, HDfullVTDlist, HDvtdFrac = [list() for t in range(nHDs)] ,[list() for t in range(nHDs)],[list() for t in range(nHDs)]               \n",
    "print(\"Now converting unit lists to vtd lists for all HDs\")\n",
    "if noFrag == 1:\n",
    "    for t in popHDlist:\n",
    "        for u in HDunitList[t]:\n",
    "            vtdList[t] += unitVTDlist[u]\n",
    "    outDF = pd.DataFrame( {\"tract\":tList,\"HDweight\":HDweight,\"HDvPop\":HDvPop,\"HDvtdList\":vtdList,\"partials\":HDpartialVTDlist,\n",
    "                           \"HDvtdFrac\":HDvtdFrac,\"centroid x\":hdCPx, \"centroid y\":hdCPy} )\n",
    "else:\n",
    "    for t in popHDlist:\n",
    "        partialList, partialFrac = list(), list()  #for many HDs, we'll recover whole VTDs when aggregating units\n",
    "        for u in HDunitList[t]:\n",
    "            HDfullVTDlist[t] +=   unitFullVTDlist[u] \n",
    "            partialList +=         unitPartialVTDlist[u]\n",
    "            partialFrac +=          unitVTDfrac[u]\n",
    "        partialSet = set(partialList)  #non-duplicated set of partials across the HD, prepping to aggregate where possible\n",
    "        partialSetFrac, partialSetList = [0. for v in partialSet], list(partialSet)\n",
    "        for i,v in enumerate(partialList):\n",
    "            partialSetFrac[partialSetList.index(v)] += partialFrac[i]\n",
    "        for i,v in enumerate(partialSetList):\n",
    "            if partialSetFrac[i] > 0.999:  #the district has all the fragments of the original VTD contained in the HD's units\n",
    "                HDfullVTDlist[t].append(v)\n",
    "            else:\n",
    "                HDpartialVTDlist[t].append(v)\n",
    "                HDvtdFrac[t].append(      r5(partialSetFrac[i]) )  #save the aggregated fraction of this VTD across all units\n",
    "    outDF = pd.DataFrame( {\"tract\":tList,\"HDweight\":HDweight,\"HDvPop\":HDvPop,\"HDvtdList\":HDfullVTDlist,\"partials\":HDpartialVTDlist,\n",
    "                           \"HDvtdFrac\":HDvtdFrac,\"centroid x\":hdCPx, \"centroid y\":hdCPy} )\n",
    "outname = STATE+str(int(nHDs))+outName+\".csv\"   #patchDown, PatchUp, PatchBoth\n",
    "outpath = \"2024state_HD_output/\"+outname\n",
    "outDF.to_csv(outpath)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ebcfa23d-0ba4-4a6e-8700-b22a3f9ef623",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.14"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
